Comment gérer des catégories et sous catégories ?

Comment gérer des catégories et sous catégories ? - PHP - Programmation

Marsh Posté le 08-11-2008 à 15:11:32    

Bonjour,
j'ai une table
http://6tnline.com/tableCategorie.png
sous catégorie représente l'id dans laquelle se trouve la catégorie.
L'ennui c'est que je voudrai faire une gestion d'arborescence pour afficher un menu

Code :
  1. <ul>
  2.    <li>zzzz</li>
  3.    <li>ssss
  4.        <ul>
  5.          <li>eeee</li>
  6.          <li>lllll</li>
  7.       </ul>
  8.    </li>
  9.    <li>qqqq</li>
  10.    <li>oooo</li>
  11. </ul>


ce que j'ai fais ne me donne rien

Code :
  1. $sqlCat= "SELECT * FROM categorie";
  2.             $result = $connection->select($sqlCat);
  3.           foreach ($result as $val)
  4.           {
  5.              $sousCategorie=$val['sousCategorie'];
  6.                        if($val['sousCategorie'] != 0)
  7.              {
  8.                  $sql= "SELECT * FROM categorie where id=$sousCategorie";
  9.                  $result = $connection->select($sql);
  10.                  foreach ($result as $t)
  11.                 { 
  12.                    if($t['id']==$val['sousCategorie'] )
  13.                         echo $t['nom'].'<br>';                                         
  14.                 }
  15.              }
  16.              if($val['sousCategorie'] != 0)
  17.              {
  18.                   echo $val['nom'].'<br>';
  19.              }
  20. }


M'avez-vous compris ?
Merci


Message édité par xaviou10 le 08-11-2008 à 15:13:28
Reply

Marsh Posté le 08-11-2008 à 15:11:32   

Reply

Marsh Posté le 08-11-2008 à 15:23:45    

Hello,
 
- Les SELECT imbriqués sont à éviter;
- On ne voit pas de <ul>, <li> etc dans le bout de code; il est évident que le code proposé ne permet pas d'atteindre le résultat escompté;
- "ce que j'ai fais ne me donne rien" -> précise le comportement observé, essaye d'abord le niveau supérieur "catégorie" avant de s'attaquer à sous-catégorie.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-11-2008 à 15:32:23    

là pour afficher cela, aucune difficuté, mais ce n'est pas une arborescence.

Code :
  1. $connection= new Connection();
  2. $sqlCat= "SELECT sousCategorie, id, nom FROM categorie ORDER BY sousCategorie DESC";
  3. echo $sqlCat;
  4. $result = $connection->select($sqlCat);
  5. foreach ($result as $val)
  6. {
  7.    $sousCategorie=$val['sousCategorie'];
  8.    if($sousCategorie == 0)
  9.       echo '<li>'.$val['nom'].'</li>';
  10.    if($sousCategorie == 1)
  11.       echo '<ul><li>'.$val['nom'].'</li></ul>';
  12.    if($sousCategorie == 2)
  13.       echo '<ul><li>'.$val['nom'].'</li></ul>';
  14.    if($sousCategorie == 3)
  15.       echo '<ul><li>'.$val['nom'].'</li></ul>';                                     
  16.    if($sousCategorie == 4)
  17.       echo '<ul><li>'.$val['nom'].'</li></ul>';
  18.    if($sousCategorie == 5)
  19.       echo '<ul><li>'.$val['nom'].'</li></ul>';                  
  20. }


ce qui donne en html

Code :
  1. SELECT sousCategorie, id, nom FROM categorie ORDER BY sousCategorie DESC
  2.     * meubles
  3.     * spéctacle
  4. # xaviou
  5. # ttttttttt
  6. # film


Message édité par xaviou10 le 08-11-2008 à 15:41:42
Reply

Marsh Posté le 14-11-2008 à 16:16:57    

1. Définitions des tables?
2. Le code est atroce :(
3. Affichage du résultat de la requête SQL depuis un client SQL, pas depuis ce code en PHP?
 


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed