par
sadeq » 29 nov. 2005, 17:52
Quelque soit la position d'un secteur il est dans une céllule et au moment où ton code place le secteur dans cette céllule il faut en profiter pour imprimer tous les sous-secteurs lui fesant référence (sous-forme de liste).
Mais tu ne dois imprimer le secteur qu'une fois.
Voilà les contraintes, maintenant passons à l'action:
1. $i : un compteur de secteurs, il servira à réguler le saut de ligne (raison=2 colonnes par ligne)
2. $nomsec_actuel : une mémoire pour concerver le secteur en cours de traitement pour éviter de l'imprimer plusieurs fois
L'idée est de ne changer de céllule que si le nomsec change.
Voici donc le code :
<table border>
<?php
//Requête de base : tous les sous-secteurs par secteur
$req = mysql_db_query(
"test",
"SELECT idsect, nomsec, idsous, nomsous FROM secteur s, soussecteur ss WHERE s.id = ss.idsect ORDER BY idsect",
mysql_connect("localhost","root","root")
);
$nomsec_actuel = null; //Mémoire du secteur en cours
$i=0; //Compteur des secteurs imprimés
//Lecture du résultat
while($res = mysql_fetch_array($req))
{
//Eviter d'imprimer le nom du secteur plusieurs fois
if($res["nomsec"] != $nomsec_actuel) {
//Nouvelle ligne après 2 colonnes ou si première fois
if ($i % 2 == 0) echo "<tr>";
//Afficher le nom du secteur dans une céllule
?>
<td><b><a class="lien" href="soussecteur.php?id=<?php echo $res['idsect']; ?>"><? echo $res["nomsec"]; ?> </a></b><br>
<?
//Mémoriser le secteur en cours
$nomsec_actuel = $res["nomsec"];
//Incrémenter le compteur des secteurs
$i++;
}
//Afficher les sous-secteur sous forme de liste dans la même céllule que le secteur
echo $res["nomsous"].",";
//Au suivant
}
?>
</table>
Quelque soit la position d'un secteur il est dans une céllule et au moment où ton code place le secteur dans cette céllule il faut en profiter pour imprimer tous les sous-secteurs lui fesant référence (sous-forme de liste).
Mais tu ne dois imprimer le secteur qu'une fois.
Voilà les contraintes, maintenant passons à l'action:
1. $i : un compteur de secteurs, il servira à réguler le saut de ligne (raison=2 colonnes par ligne)
2. $nomsec_actuel : une mémoire pour concerver le secteur en cours de traitement pour éviter de l'imprimer plusieurs fois
L'idée est de ne changer de céllule que si le nomsec change.
Voici donc le code :
[php]
<table border>
<?php
//Requête de base : tous les sous-secteurs par secteur
$req = mysql_db_query(
"test",
"SELECT idsect, nomsec, idsous, nomsous FROM secteur s, soussecteur ss WHERE s.id = ss.idsect ORDER BY idsect",
mysql_connect("localhost","root","root")
);
$nomsec_actuel = null; //Mémoire du secteur en cours
$i=0; //Compteur des secteurs imprimés
//Lecture du résultat
while($res = mysql_fetch_array($req))
{
//Eviter d'imprimer le nom du secteur plusieurs fois
if($res["nomsec"] != $nomsec_actuel) {
//Nouvelle ligne après 2 colonnes ou si première fois
if ($i % 2 == 0) echo "<tr>";
//Afficher le nom du secteur dans une céllule
?>
<td><b><a class="lien" href="soussecteur.php?id=<?php echo $res['idsect']; ?>"><? echo $res["nomsec"]; ?> </a></b><br>
<?
//Mémoriser le secteur en cours
$nomsec_actuel = $res["nomsec"];
//Incrémenter le compteur des secteurs
$i++;
}
//Afficher les sous-secteur sous forme de liste dans la même céllule que le secteur
echo $res["nomsous"].",";
//Au suivant
}
?>
</table>
[/php]