hello, je suis en train de programmer un menu, et je voulais avoir comment optimiser au mieux ma requête.
En gros; j'ai un champs ID qui correspond à la ligne du menu, et un champs P_ID optionnel si cette ligne est un sous-menu.
Là j'imaginais faire
Mais je suppose qu'il y a plus simple et qu'il y a moyen de faire une seule requête pour le même résultat ?
Je sais pas trop quoi utiliser, GROUP_ID ou ce genre de trucs...
Mon problème c'est que je ne sais pas combien de "sous-niveaux" il y a pour chaque item du menu, et donc combien de requête je dois faire...
Bref, si quelqu'un a une piste, je suis preneur !
En gros; j'ai un champs ID qui correspond à la ligne du menu, et un champs P_ID optionnel si cette ligne est un sous-menu.
Là j'imaginais faire
$requete = "SELECT * FROM menu ORDER by id WHERE p_id ='' ASC"; //on selectionne les lignes qui ne sont pas des sous-menus
$resultat = requete($requete);
$nr_result = mysql_num_rows($resultat);
if (!empty($nr_result)) {
while( $row = mysql_fetch_assoc( $resultat ) ){
echo $row["titremenu"];
$requete2 = "SELECT * FROM menu WHERE p_id='".$row["id"]."' ORDER by id ASC"; //on sélectionne les sous-menus de cet ID
$resultat2 = requete($requete2);
$nr_result2 = mysql_num_rows($resultat2);
if (!empty($nr_result2)) {
while( $row2 = mysql_fetch_assoc( $resultat2 ) ){
echo $row["titremenu"];
}
}
}
}
Mais je suppose qu'il y a plus simple et qu'il y a moyen de faire une seule requête pour le même résultat ?
Je sais pas trop quoi utiliser, GROUP_ID ou ce genre de trucs...
Mon problème c'est que je ne sais pas combien de "sous-niveaux" il y a pour chaque item du menu, et donc combien de requête je dois faire...
Bref, si quelqu'un a une piste, je suis preneur !