Page 1 sur 1

Requête MySQL en ligne avec <table>

Posté : 09 juil. 2008, 23:32
par chrislabricole
Bonsoir,
J'espère que me titre est parlant :P

J'ai un problème qui devait arriver un jour, je le savais, et là, c'est le jour ^^

En fait, j'ai plusieurs données qui arrivent de MySQL et je voudrais interpréter ça cellule par cellule dans une <table>... (pas la table de MySQL, la table dans HTML :P)

En cherchant sur le Web, j'ai trouver comment il fallait faire mais la finition n'est pas très propre, mon tableau a 4 colonnes, et les lignes, dépendent du nombre d'enregistrements dans la base ;)

Imaginons que j'ai 6 enregistrements, les 4 premiers vont former une ligne, et 2 autres vont se mettre en dessous, donc on aura :

Code : Tout sélectionner

<table> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <!--C'EST ICI QUE J'ARRIVE PAS A RAJOUTER 2 AUTRES <td> POUR QUE SA SOIS PROPRE--> </tr> </table>
Voici mon code :
<table cellspacing="20" class="tables_editions" border="1">
<tr>
<?php
$i = 1;
$cellule = '<td>&nbsp;</td>';
while ( $donnees = mysql_fetch_array($requete) ){
	$date_barres = str_replace('-', '/', $donnees['date']);
?>
<td><a href="./edition.php?id=<?php echo $id; ?>&of=<?php echo $donnees['date']; ?>">Edition du <?php echo $date_barres; ?><br /><img src="./images/page.png" alt="Edition du <?php echo $date_barres; ?>" title="Edition du <?php echo $date_barres; ?>" /></a></td>


	<?php
    if ( $i % 4 == 0 ){
    ?>
    </tr>
    <tr>
	<?php
	}
$i++;
} // Fin While

// While pour finir les <td>
$td_restants = $count_nb_enr .....;
$i_td = 0;
while(....){
  echo $cellule;
	$i_td++;
}
?>
</tr>
</table>
Voilà, Merci de votre aide :)

EDIT:
$requete = mysql_query('SELECT * FROM lux_editions WHERE categorie="'.$id.'"');
	 $count_nb_enr = mysql_num_rows($requete);
Au besoin ;p

Posté : 10 juil. 2008, 10:23
par guilt92
Pour moi il suffit de faire une boucle de while pour "terminer les td" qui ressemble à ça :
if($i%4) {
		while($i%4) {
			echo "<tr></tr>";
			$i++;
			}
	}

Posté : 10 juil. 2008, 12:53
par chrislabricole
Ah trop cool merci :)
Mais dans mon cas je suis obliger de faire ça, je ne sais pas vraiment pourquoi lol
	if($i%4) {
		while( ($i%4)-1 ) {
			echo $cellule;
			$i++;
		}
	}
Merci à toi, Résolu ;)

Posté : 10 juil. 2008, 15:13
par Ryle
Même si le problème est résolu, tu trouveras ici un petit tuto (tout frais tout chaud) pour comprendre un peu mieux le fonctionnement de l'opérateur modulo et peut être y trouver une solution plus claire pour construire ce genre de tableau :)

Posté : 10 juil. 2008, 15:17
par chrislabricole
Ah oui merci :)