Menu dynamique PHP Mysql

[Fermé]
Signaler
Messages postés
197
Date d'inscription
dimanche 9 novembre 2008
Statut
Membre
Dernière intervention
5 juin 2017
-
Messages postés
33734
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 octobre 2021
-
Bonjour à tous,

je souhaite créer un menu dynamique en PHP via les données de ma BDD.

Voici, pour le moment, le contenu de ma base (2 tables):

categories (idCateg, titreCateg, positionCateg)

sousCategorie (idSousCateg, idCateg, titreCateg, positionSousCateg)

Les positionCateg et positionSousCateg me servent à définir dans quel ordre je souhaite faire apparaître mes catégories (celle qui sera la 1ere, la 2eme, 3eme etc...)

Ce à quoi je souhaiterai aboutir:

Categ 1 -------- Categ 2 --------- Categ 3
ssCateg1.1 --- ssCateg2.1 ---- ssCateg3.1
ssCateg1.2 --- ssCateg2.2 ---- ssCateg3.2
ssCateg1.3 --- ssCateg2.3 ---- ssCateg3.3
---------------------------------------------------------------------
                 <ul id="nav" class="menu">
<?php
$sql = "SELECT * FROM categories AS n, souscategorie  AS a WHERE n.idCateg = a.idCateg2";
$result = @mysql_db_query($dbname, $sql, $id_link);


 while ($list = mysql_fetch_array($result))
{
    $id_page= $list['idCateg'];
  $titre = $list['titreCateg'];
    $soutitre = $list['titreSousCateg'];

 $Id_parent= $list['positionCateg'];
 echo" <li><a href='#' id='current'> $titre</a><ul>
                       
                            
                                <li><a href='index.html'>$soutitre</a></li></ul> </li>
                            
";
 
 
  
}  
  ?>



EDIT : Ajout des balises de code

1 réponse

Messages postés
33734
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 octobre 2021
3 770
Bonjour,

1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


2 - Pour ta requête.. utilises un ORDER BY pour classer les éléments...

SELECT *
FROM categories C
    ,sousCategorie SC
WHERE C.idCateg = SC.idCateg
ORDER BY C.idCateg, SC.positionSousCateg


3 - Ensuite dans ton code PHP :

while ($list = mysql_fetch_array($result)){
 $idCateg= $list['idCateg'];
  $titre = $list['titreCateg'];
  $soutitre = $list['titreSousCateg'];
  $positionCateg= $list['positionCateg'];
	if($idCategPrec !=$idCateg && $idCategPrec !=''){
	  echo "</ul> </li>";	
	 }
	if($idCategPrec !=$idCateg ){
    echo" <li style='display: inline-block'><a href='#' id='current'>".$titre."</a><ul>";
         
	}
    echo " <li><a href='index.html'>".$soutitre."</a></li>";    
			
$idCategPrec=$idCateg;
}