Requête MySQL en ligne avec <table>

Mammouth du PHP | 959 Messages

09 juil. 2008, 23:32

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

Mammouth du PHP | 1353 Messages

10 juil. 2008, 10:23

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++;
			}
	}
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 959 Messages

10 juil. 2008, 12:53

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 ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 juil. 2008, 15:13

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 959 Messages

10 juil. 2008, 15:17

Ah oui merci :)