Un sous menu en php

Signaler
-
Messages postés
17
Date d'inscription
jeudi 31 octobre 2013
Statut
Membre
Dernière intervention
9 février 2016
-
Bonjour j ai un petit souci avec mon menu, je veux afficher les sous menu de chaque menu avec le nom des catégorie , le souci il m affiche bien tout les menu mais le nom des catégorie se répète .
pour l instant il m affiche :

________________________
SPORT

judo

SPORT

Foot

SPORT

pingpong

________________________
Mais moi je veux qu il m affiche:

________________________

SPORT

judo

foot

pingpong

VILLES

paris

nice

________________________
Voici le script:
$query = "SELECT idmenu, Parent, titre FROM menu ORDER BY Parent ASC";
$result = $dbh->query($query);
  
$categories = array();
   
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $categories[] = array(
    'parent_id' => $row['Parent'],
    'categorie_id' => $row['titre'],
    'nom_categorie' => $row['idmenu']
    );
}
 
 
    echo "<ul>";
  
foreach($categories as $row)
{
  
 echo '<li class="sub-menu"><a href="">';
         echo  $row['nom_categorie'];
  
    
echo '          </a> <ul> <li>
                <a href="#">';
                echo  $row['categorie_id'];
         echo '       </a>
            </li>
        </ul></li>';
      
   
}
echo "</ul>";


merci

3 réponses

Messages postés
31509
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2021
344
BOnjour,
Il te suffit de verifier si la catégorie que tu vas afficher est différente de celle précédement inscrite.. Si oui : Tu l'écris... si non.. tu es toujours dans la même;
Messages postés
6
Date d'inscription
dimanche 15 décembre 2013
Statut
Membre
Dernière intervention
6 juin 2014

Bonjour,

Je pense que jordane45 n'a pas tort pour que ce soit fait ultra rapidement.
Syntaxiquement je pense qu'il serait préférable de faire une sélection des catégories parentes avec affichage et une sélection des catégories a partir d'un parent avec affichage.




function select_parents_cat(){
//ici on sélectionne la liste des categories parents
[...]
// pour chaque parent on va chercher et on affiche les enfants
foreach($categories as $row)
{
[...]
select_childs_cat($row[...]);
}
}


function select_childs_cat($parent){
//ici on sélectionne la liste des categories enfant du parent passé en parametre
[...]
// on affiche les enfants
foreach($categories as $row)
{
[...]
}
}


Après sinon le mieux serait de respecter le modele MVC :) Je te laisse regarder tout cela ;)

A+
Laurent
Messages postés
17
Date d'inscription
jeudi 31 octobre 2013
Statut
Membre
Dernière intervention
9 février 2016
1
une solution simple :
tu passes par 2 requêtes :
select distinct catégorie from nom_table
while
{
echo "<ul> row de nom_catégorie"
select titre from nom_table where categorie = row['categorie]
while {...
echo '<li>row titre'
}
echo "ul"
}

voila pour le principe, maintenant à toi de mettre ça à ta sauce avec les bon nom de tables et les bon champ....