Un sous menu en php

aline - Modifié par aline le 14/12/2013 à 21:19
22youenn Messages postés 17 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 9 février 2016 - 21 déc. 2013 à 21:16
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 déc. 2013 à 11:36
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;
0
Larfara Messages postés 6 Date d'inscription dimanche 15 décembre 2013 Statut Membre Dernière intervention 6 juin 2014
15 déc. 2013 à 12:38
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
0
22youenn Messages postés 17 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 9 février 2016 1
21 déc. 2013 à 21:16
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....
0
Rejoignez-nous