Afficher résultat SQL dans des colonnes
Fermé
Catalina
-
25 mai 2010 à 17:56
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 2 juin 2010 à 09:58
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 2 juin 2010 à 09:58
A voir également:
- Afficher résultat SQL dans des colonnes
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Lexer resultat - Télécharger - Sport
- Resultat foot - Télécharger - Vie quotidienne
- Afficher calendrier outlook dans google agenda - Guide
8 réponses
wyllos
Messages postés
160
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2011
5
25 mai 2010 à 18:23
25 mai 2010 à 18:23
tu peux calculer le nombre d'enregistrement et ensuite tu fais
if($nbr<12)
{
echo "<div id="row1"></div>";
}
.....
if($nbr<12)
{
echo "<div id="row1"></div>";
}
.....
wyllos
Messages postés
160
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
15 septembre 2011
5
25 mai 2010 à 18:40
25 mai 2010 à 18:40
a la suite de ta requete tu peux faire
$num_rows = mysql_num_rows($dep_query);
for($i=0;$i<sizeof($num_rows);$i++)
{
if($i<12)
{
echo "<div id="row1"> ton premier tableau</div>";
}
if ($i>12 && $i<24)
{
echo "<div id="row2">ton second tableau</div>;
}
..........
}
$num_rows = mysql_num_rows($dep_query);
for($i=0;$i<sizeof($num_rows);$i++)
{
if($i<12)
{
echo "<div id="row1"> ton premier tableau</div>";
}
if ($i>12 && $i<24)
{
echo "<div id="row2">ton second tableau</div>;
}
..........
}
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2010 à 18:40
25 mai 2010 à 18:40
essayes avec du CSS comme ça:
<?php $sql_select_dep = $db->query("SELECT dep_id FROM " . DB_PREFIX . "dep WHERE parent_id='" . $parent_id . "') " . $dep_query . " ORDER BY order_id ASC, name ASC"); $i=1; $open_div=0; $close_div=0; while($row=mysql_fetch_assoc($sql_select_dep)){ if($i==1){ echo '<div id="colonnes" style="width:50px; float:left;">'; // tu peux mettre le style CSS à part si tu veux $open_div++; } echo $row['dep_id']; $i++; if($i>12){ $i=1; echo '</div>'; $close_div++; } } //on rajoute une femeture de balise div si elle manque,( si le nombre de dep n'est pas un multiple de 12 !) if($close_div<$open_div){ echo '</div>'; }
bon ben là j'ai carrément une belle erreur :)
Une erreur Mysql est survenue :
* L'opération que vous essayez d'exécuter est invalide
* Erreur Mysql : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY order_id ASC, name ASC' at line 2
* SQL Query: SELECT dep_id FROM base_dep WHERE parent_id='') ORDER BY order_id ASC, name ASC
Une erreur Mysql est survenue :
* L'opération que vous essayez d'exécuter est invalide
* Erreur Mysql : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY order_id ASC, name ASC' at line 2
* SQL Query: SELECT dep_id FROM base_dep WHERE parent_id='') ORDER BY order_id ASC, name ASC
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2010 à 20:58
25 mai 2010 à 20:58
tu dois avoir un pb avec la syntaxe de ta requette
je ne connais pas cette methode
je ne connais pas cette methode
Bon, je viens de tenter un brillant :
<?
$sql_select_deps = $db->query("SELECT dep_id FROM " . DB_PREFIX . "deps WHERE
parent_id='" . $parent_id . "' AND (user_id=0 OR user_id='" . "')
" . $deps_query . " ORDER BY order_id ASC, name ASC");
$num=11;
$width=100/$num;
$cnt=0;
$deps_content="<tr>";
$taa=0;
while ($cat_details = $db->fetch_array($sql_select_deps))
{
$taa++;
if ($cnt==$num){
$deps_content.="</tr></div>";
$cnt=0;
}
$deps_content.='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a></td>';
$cnt++;
}
?>
<?=$dep_content;?>
Tout marche royalement bien sauf que je n'ai pas un affichage sous forme de tableau mais tous les départements s'affichent comme ça en haut de ma page :
Ain (01)Aisne (02)Allier (03)Alpes-de-Hte-Provence (04)Alpes-Maritimes (06)Ardèche (07) Ardennes (08)Ariège (09) Aube (10)Aude (11)Aveyron (12Bas-Rhin (67)Bouches-du-Rhône (13)Calvados (14)Cantal (15)Charente (16)Charente-Maritime (17)Cher (18)Corrèze (19)Corse-du-Sud (2A)Côte-d'Or (21)Côtes-d'Armor (22)Creuse (23)Deux-Sèvres (79)Dordogne (24)Doubs (25)Drôme (26)Essonne (91)Eure (27)Eure-et-Loir (28)Finistère (29)Gard (30)Gers (32)Gironde (33).................
Pas top hein... :(
J'ai zappé quoi là ?
<?
$sql_select_deps = $db->query("SELECT dep_id FROM " . DB_PREFIX . "deps WHERE
parent_id='" . $parent_id . "' AND (user_id=0 OR user_id='" . "')
" . $deps_query . " ORDER BY order_id ASC, name ASC");
$num=11;
$width=100/$num;
$cnt=0;
$deps_content="<tr>";
$taa=0;
while ($cat_details = $db->fetch_array($sql_select_deps))
{
$taa++;
if ($cnt==$num){
$deps_content.="</tr></div>";
$cnt=0;
}
$deps_content.='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a></td>';
$cnt++;
}
?>
<?=$dep_content;?>
Tout marche royalement bien sauf que je n'ai pas un affichage sous forme de tableau mais tous les départements s'affichent comme ça en haut de ma page :
Ain (01)Aisne (02)Allier (03)Alpes-de-Hte-Provence (04)Alpes-Maritimes (06)Ardèche (07) Ardennes (08)Ariège (09) Aube (10)Aude (11)Aveyron (12Bas-Rhin (67)Bouches-du-Rhône (13)Calvados (14)Cantal (15)Charente (16)Charente-Maritime (17)Cher (18)Corrèze (19)Corse-du-Sud (2A)Côte-d'Or (21)Côtes-d'Armor (22)Creuse (23)Deux-Sèvres (79)Dordogne (24)Doubs (25)Drôme (26)Essonne (91)Eure (27)Eure-et-Loir (28)Finistère (29)Gard (30)Gers (32)Gironde (33).................
Pas top hein... :(
J'ai zappé quoi là ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2010 à 22:32
25 mai 2010 à 22:32
tu ne peux pas afficher avec une table et des tr td il faut absolument passer par les div et du CSS
essayes comme ça:
essayes comme ça:
<?php $sql_select_deps = $db->query("SELECT dep_id FROM " . DB_PREFIX . "deps WHERE parent_id='" . $parent_id . "' AND (user_id=0 OR user_id='" . "') " . $deps_query . " ORDER BY order_id ASC, name ASC"); $num=11; $width=100/$num; $open_div=0; $close_div=0; $taa=0; $deps_content=''; while ($cat_details = $db->fetch_array($sql_select_deps)) { if($taa==0){ //premier de la colonne on ouvre le div $deps_content.='<div id="colonnes" style="width:'.$width.'; float:left;">'; $open_div++; } $deps_content.='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a>'; $taa++; if ($taa>$num){ //on a atteint le dernier de la colonne $taa=0; $deps_content.="</div>"; //on ferme le div $close_div++; }else{ echo '<br />'; } } //on rajoute une femeture de balise div si elle manque,( si le nombre de dep n'est pas un multiple de 12 !) if($close_div<$open_div){ echo '</div>'; } echo $dep_content; ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2010 à 22:48
25 mai 2010 à 22:48
il faut modifier ça:$width=100/$num;
par
et $deps_content.='<div id="colonnes" style="width:'.$width.'; float:left;">';
par:
par
$width=500/$num;
et $deps_content.='<div id="colonnes" style="width:'.$width.'; float:left;">';
par:
$deps_content.='<div id="colonnes" style="width:'.$width.'px ; float:left;">';
rien à faire... ça m'affiche toujours les départements dans une colonne à gauche en bas et superposés les uns sur les autres... même en augmentant le $width...
pffff je vais me manger une glace tiens, ça va me rafraichir les neurones :)
si vous avez d'autres suggestions, je suis preneuse après ma glace lol
pffff je vais me manger une glace tiens, ça va me rafraichir les neurones :)
si vous avez d'autres suggestions, je suis preneuse après ma glace lol
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
31 mai 2010 à 13:54
31 mai 2010 à 13:54
je ne sais pas si tu es toujours à l'écoute, mais une autre solution sans le CSS, avec seulement table et tr td
<?php $sql_select_deps = $db->query("SELECT dep_id FROM " . DB_PREFIX . "deps WHERE parent_id='" . $parent_id . "' AND (user_id=0 OR user_id='" . "') " . $deps_query . " ORDER BY order_id ASC, name ASC"); //on va stocker les resultats dans un array pour pouvoir afficher ensuite comme on veut $array_resultats=array(); while ($cat_details = $db->fetch_array($sql_select_deps)){ $array_resultats[]='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a></td>'; } //nombre de resultats $nb_resultats=sizeof($array_resultats); //parametres modifiables $nb_par_colonne=12; //calculs nbr de colonnes necessaires $nb_col=ceil($nb_resultats/$nb_par_colonne); //arrondi entier superieur //affichage des colonnes $deps_content= '<table>'; for($i=0;$i<$nb_par_colonne;$i++){ $deps_content.= '<tr>'; for($c=0;$c<$nb_col;$c++){ $index=$i+($nb_par_colonne*$c); if(isset($array_resultats[$index])){ $deps_content.= '<td>'.$array_resultats[$index].'</td>'; }else{ $deps_content.=' '; //on remplit ce qui reste avec un espace pour avoir le bon nombre de td à chaque ligne } } $deps_content.= '</tr>'; } $deps_content.='</table>'; echo $dep_content; ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
2 juin 2010 à 09:58
2 juin 2010 à 09:58
comme il pleut j'ai eu un peu de temps pour tester, il y a deux petites erreurs
a cette ligne:
$array_resultats[]='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a></td>';
il y a un </td> en trop
et la
echo $dep_content;
=>
a cette ligne:
$array_resultats[]='<a href="deps.php?parent_id=' . $cat_details['dep_id'] . '">' . $dep_lang[$cat_details['dep_id']] . '</a></td>';
il y a un </td> en trop
et la
echo $dep_content;
=>
echo $deps_content;
25 mai 2010 à 18:28
Et je ne sais pas où placer ton code :(
Après la requête ?
Juste avant l'affichage de <?=$dep_box_content;?> ?
Merci à toi :)