problème d'affichage

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

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> 

Modifié en dernier par sadeq le 30 nov. 2005, 15:07, modifié 2 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 11 Messages

30 nov. 2005, 11:32

Bonjour,
Merci beaucoup sadeq, c'est génial ce vous m'avez donné comme solution, c'est exactement ce que je veux!
maintenant je constate que c'est simple, mais bon je débute, et j'apprends.
Merci encore une fois. :love1: