Page 1 sur 1
Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 12:22
par Methodz
Bonjour à tous,
Je créé sur mon site une liste banale de la manière suivante :
<ul style="list-style-type:none; margin:0; padding:0;">
<?$queryM = "SELECT * FROM marques INNER JOIN modeles ON rid_marque = id_marque INNER JOIN vehicules ON rid_modele = id_modele AND publication = '1' AND marchand = '0' AND photo = '1' AND prix != '0' GROUP BY id_marque ORDER BY marque";
$execM = mysql_query($queryM);
while($rowM = mysql_fetch_array($execM)){?>
<li style="margin-bottom:6px; margin-right:10px;"><a href="/voitures-occasion-<?=strtolower($rowM['marque'])?>,<?=stripslashes($rowM['id_marque'])?>.html"><?=$rowM['marque'];?></a></li>
<? } ?>
</ul>
Sauf que ma base de donnée comporte 20 marques, donc ça donne une liste qui prend beaucoup de place verticalement.
J'aimerais couper cette liste en deux et l'afficher sur 2 colonnes (10 marques par colonne).
Mais je ne trouve pas de solution...
Merci par avance pour vos pistes.
Rom.
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 12:32
par frf2
Bonjour,
En ajoutant un LIMIT(0,9) a la fin de te requête sa te convient pas?
$queryM = "SELECT * FROM marques INNER JOIN modeles ON rid_marque = id_marque INNER JOIN vehicules ON rid_modele = id_modele AND publication = '1' AND marchand = '0' AND photo = '1' AND prix != '0' GROUP BY id_marque ORDER BY marque LIMIT 0,10 ";
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 13:11
par Methodz
Ok merci je ne connaissais pas l'astuce,
j'ai donc créé deux listes avec deux requêtes, une qui prend les résultats 1 à 10, et l'autre 11 à 20.
Merci encore, bonne journée !
Rom.
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 13:27
par dix2
salut,
<?php
$queryM = "SELECT * FROM marques INNER JOIN modeles ON rid_marque = id_marque INNER JOIN vehicules ON rid_modele = id_modele AND publication = '1' AND marchand = '0' AND photo = '1' AND prix != '0' GROUP BY id_marque ORDER BY marque";
$execM = mysql_query($queryM);
$i = 0;
ob_start();
echo('<ul style="list-style-type:none; margin:0; padding:0;">');
while( $rowM = mysql_fetch_array($execM) ){
echo('<li style="margin-bottom:6px; margin-right:10px;"><a href="/voitures-occasion-'.strtolower($rowM['marque']).','.stripslashes($rowM['id_marque']).'.html">'.$rowM['marque'].'</a></li>');
$i++;
if( $i % 10 == 0 ) {
echo('</ul>');
ob_flush();
echo('<ul style="list-style-type:none; margin:0; padding:0;">');
}
}
($i % 10 == 0) ? ob_clean() : echo('</ul>');
ob_end_flush();
après, il faut mettre les ul en float:left sauf le dernier
@+
dix2
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 13:31
par schim59
EDIT : doublon avec dix2

Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 14:54
par Methodz
Merci, j'en profite pour une petite question :
echo('<ul style="list-style-type:none; margin:0; padding:0;">');
Le echo est-il nécessaire ? C'est pas par flemme de le mettre que je demande, mais juste pour comprendre s'il a une réelle utilité
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 15:04
par schim59
Bjr,
Pour produire du HTML je connais que ça.
Tu as une idée derrière la tête ?
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 16:54
par dix2
Merci, j'en profite pour une petite question :
echo('<ul style="list-style-type:none; margin:0; padding:0;">');
Le echo est-il nécessaire ? C'est pas par flemme de le mettre que je demande, mais juste pour comprendre s'il a une réelle utilité
le echo n'est pas nécessaire mais personnellement, je préfère faire un echo plutot que fermer le code php juste avant et le rouvrir juste apres
en fait ça dépend s'il y a bcp de lignes html à insérer
si il y a un bloc de 10 lignes html, dans ce cas, je préfère fermer le code php puis le rouvrir
mais s'il n' y a qu'1 ou 2 lignes de html, je préfère utiliser la fonction echo
Re: Couper une longue liste en plusieurs colonnes
Posté : 15 nov. 2012, 18:29
par Methodz
Ca marche, merci pour tout !