Page 1 sur 1

Boucle avec des <TR> et <TD>

Posté : 15 mars 2007, 16:53
par kweb
Slt tous le monde,
J'ai une boucle qui affiche deux infos : le "Mois de l'année" et un "Titre"
while($row = mysql_fetch_array($retour)) {
  if($mois != $row['mois_evenement']) { // nouveau mois : affichage du libellé
    echo '<h3>Mois de ' . $row['mois_evenement'] . '</h3>';
    $mois = $row['mois_evenement']; // maj de la variable temp
  }

  // affichage des événement du mois en cours
  echo '<a href="detail.php?info='.$row['id_evenement'].'">'.$row['evenement_agenda'].'</a>'; 
  echo "<br />"; 
  echo "<hr noshade=\"noshade\"/>";
}
j'essaie de rajouter un tableau a l'intérieur de la boucle pour avoir une mise en page différente.
je voudrais avoir le mois de l'année qui s'affiche dans une cellule et dans la cellule juste en dessous affiché tout les titres du mois.
Pour mieux comprendre je voudrais un résultat final comme sa :

Code : Tout sélectionner

<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>janvier</td> <td>fevrier</td> </tr> <tr> <td> Titre 01<br /> Titre 02 <br /> Titre 03 <br /> Titre 04 </td> <td> Titre 01<br /> Titre 02 <br /> Titre 03 <br /> Titre 04 </td> </tr> </table>
Voici ce que j'ai essayé d'écrire, mais je me retrouve avec des cellule qui se duplique vers le bas et non pas horizontalement.
<table width="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="#FFFFFF">
	
    <? $mois = ''; // variable temporaire
while($row = mysql_fetch_array($retour)) {
  if($mois != $row['mois_agenda']) 
	  { // nouveau mois : affichage du libellé
		
		echo '<tr>';
		echo '<td id="cellule_tableau">' . $row['mois_agenda'] . '</td>';
		$mois = $row['mois_agenda']; // maj de la variable temp
		echo '</tr>';
	  }?> 
	  
	  <tr>
	  <?

  // affichage des événement du mois en cours
  echo '<td valign="top" bgcolor="#EEF4EB"><div align="center"> <font face="Arial" size=\'-1\' color="#000099"><a href="detail.php?info='.$row['id_agenda'].'">'.$row['congres_agenda'].'</a></font></div>'; 
  echo "<br />"; 
  echo "<hr noshade=\"noshade\"/>";
  echo '</td>';
} ?></tr>
</table>
J'ai beau tourné dans tout les sens, je n'arrive pas a trouvé la bonne syntaxe.


Il y a surement quelqu'un qui aurais la réponse.
merci de votre participation.

Posté : 15 mars 2007, 17:10
par leakcim51
Salut!

Tout d'abord, pourrais tu ajouter ta requête SQL afin de voir si tu as trié tes données selon le mois.

Ensuite, je ne pense pas que tu puisses construire ta table directement. En effet, avec ta boucle, tu peux créer une ligne à chaque passage dans ton while.
Une solution serait d'utiliser temporairement un array (type Table de Hashage) et ensuite dans une seconde boucle de créer ta table HTML.

Bon courage

Posté : 15 mars 2007, 17:12
par kweb
Voici la requête SQL
$sql = "SELECT id_agenda, congres_agenda, mois_agenda, date_debut_agenda 
  FROM agenda 
  ORDER BY date_debut_agenda asc"; // lister les champs, c'est mieux que *
// par ailleurs si tu as un champ date pour le tri, ca sera mieux également :)
$retour =  mysql_query ($sql);