Base de données : affichage en deux colonnes

WRInaute impliqué
Bonjour,

J'ai un site d'annonces et j'ai plusieurs catégorie qui s'affiche sur une page (environ 40 catégorie) ces catégorie s'affiche en un seul colonne. Ma question comment faire pour afficher les catégorie en deux ou trois colonne.
Car avec un seul colonne ça fait une longue page.
voici le code qui affiche ces catégorie
Code:
<?php
mysql_select_db($database_connexion, $connexion); $today=date("Y-m-d");
$query_nbr = "SELECT * FROM annonce where ville = ".$row_ville['id']." AND type_location = $cat AND validation_admin=1 AND date_exp>= '$today'"; //echo $query_nbr;
$nbr = mysql_query($query_nbr, $connexion) or die(mysql_error());
$row_nbr = mysql_fetch_assoc($nbr);
$totalRows_nbr = mysql_num_rows($nbr); 
if ($totalRows_nbr>0){
?>
                                                         
<a href="resultannonce.php?ville=<?php echo $row_ville['id']; ?>&amp;cat=<?php echo $cat ; ?>"> 
<?php }?>
<?php echo $row_ville['lib']; echo " ($totalRows_nbr)" ;
?>
<?php if ($totalRows_nbr>0){
?>
</a>
<?php }?>
:


Mille merci de m'aider.
 
WRInaute impliqué
Re: Base de donnée : affichage en deux colonne

Et pourquoi pas avec du css ?
je dirais d'utiliser une liste ul et de mettre un style li { float:left; width:30% }.
c'est de l'à peu près, à toi de tester/adapter (pas sur qu'il faille le float tout compte fait)
 
WRInaute impliqué
Re: Base de donnée : affichage en deux colonne

Merci pour ta réponse.
Je ne suis pas doué dans css . ni dans le php par contre avec le php je peux changer des chose, faire des modifications ...
SVP je doit ajouter quoi exact comme code sur les code donnée en haut.

Merci
 
WRInaute passionné
Re: Base de donnée : affichage en deux colonne

Salut,
En gros :
Code:
<?php
	echo '<table>';

	$i=0;
//Sélection des catégories via boucle while ou autre
   
		if ($i%3 == 0) //colonne de gauche et donc nouvelle ligne
		{
			if($i != 0)
				echo "</tr>\n";
			echo "<tr>\n";
		}
		$i++;
   
//on affiche les catégories

echo '<td>'.$categorie.'</td>';

}
	echo '</tr>';
	echo '</table>';
?>
 
WRInaute accro
Re: Base de donnée : affichage en deux colonne

Astuce choper il y a pas longtemps sur le web mais je sais plus où désolé :
tu créer une liste
Code:
<ul class="liste"><li><a></a></li></ul>
puis tu colle ce css

Code:
ul.liste{width : 291px;}

ul.liste li {
display:block;
width : 140px;
height : 25px;
float:left;
}

ul.liste li[float="left"] + li {
float:none;
}
Il faut donc assigner une largeur à la liste <ul> et transformer chaque élément de la liste <li> en block et leur attribuer une largeur et une hauteur. L’astuce est ensuite de les faire flotter avec un float:left; et de ne pas faire flotter ceux-ci : ul.liste li[float="left"] + li.
 
WRInaute accro
Re: Base de donnée : affichage en deux colonne

+1 bproductiv.

Redoutable, et surtout bien plus léger que le recours au table tr td.
 
WRInaute accro
Re: Base de donnée : affichage en deux colonne

J'utilise toujours la solution en <ul><li> (Seebz + bproductiv) (la plus sémantique) pour ce genre de choses, pour changer le nombre de colonnes ça se passe uniquement dans le CSS.

@tryan, les tables c'est pour des données tabulaires...
 
WRInaute passionné
Re: Base de donnée : affichage en deux colonne

Je ne savais même pas que ce style de code en CSS existait... je viens de tester et ça me trou le c*l ^^ ..carrément géniale ce truc ^^!!

Par contre, si on sort des données d'une BD et que l'on veux les afficher sur 3 ou 4 colonnes ... vous faites comment du coup ????
 
WRInaute accro
Re: Base de donnée : affichage en deux colonne

C'est simple: width: 100% = 1 colonne, 50% = 2 colonnes, 33% = 3 colonnes ...
 
WRInaute passionné
Re: Base de donnée : affichage en deux colonne

Génial ^^, je vais tenter d'intégrer ça et virer mes tableaux.
Merci
 
WRInaute impliqué
Re: Base de donnée : affichage en deux colonne

Bonjour, Merci beaucoup pour votre aide. Par contre je n'est pas réussi a faire ça. Je ne suis pas assez fort en programation ...
ça sera sympa si vous me coller directement le code donnée dans mon code SVP :

Merci
 
WRInaute passionné
Re: Base de donnée : affichage en deux colonne

UsagiYojimbo a dit:
+1 bproductiv.
Redoutable, et surtout bien plus léger que le recours au table tr td.
+1 c'est clair...
merci pour ce petit truc extra ! :mrgreen:
 
WRInaute accro
Re: Base de donnée : affichage en deux colonne

abelazi a dit:
Bonjour, Merci beaucoup pour votre aide. Par contre je n'est pas réussi a faire ça. Je ne suis pas assez fort en programation ...
ça sera sympa si vous me coller directement le code donnée dans mon code SVP :

Merci
Faut pas abuser y'a pas plus simple.
Tu sais faire une liste avec ul > li ? si non désolé mais là faut vraiment revoir les bases.
 
Nouveau WRInaute
Bonsoir,

je post ceci 2 ans après mais bon

Après avoir effectuer une recherche sur le net afin de liste les données mysql par colonne, je suis tombé sur votre forum.
Et merci à bproductiv pour cette solution, celà m'a beaucoup aider et ça fonctionne correctement.


Merci

@+
 
Discussions similaires
Haut