Arbre php/mysql
Hors ligneHametsu Le 17/02/2008 à 23:32 Profil de Hametsu Configuration de Hametsu

Bonjour,
après de nombreuses recherches je n'arrive toujours pas réellement à comprendre comment mettre en œuvre une arborescence dans une table mysql .

j'ai une table `pages` où j'ajoute comme le nom de la table l'indique des ... pages !
une page peut avoir plusieurs "enfants" et appartenir à un "parent", chaque "enfant" peut être "parent" de plusieurs autres "enfants" etc...

j'ai lu un étonnant article sur les "représentation intervallaire des arborescences" : lire l'article

Mais je ne vois pas réellement comment l'utiliser pour créer par exemple une liste (<ul><li></li></ul>) ou une liste de sélection (<select><option></option></select>).

Si vous pouviez ne serais-ce que m'aiguiller ou me fournir d'autres liens afin que je poursuive mes recherches ça serait cool :D

Au revoir !

PS : je tiens à préciser que c'est pour un projet d'étude et pas une lubie ;)
Hors ligneBrako Le 01/03/2008 à 11:18 Profil de Brako Configuration de Brako

Bonjour!

Ou ce situe exactement de ton problème ? A la création de la table en elle même en mettant en relation enfants et parents ou à l'affichage ?

La table je ferais comme le dit l'arclicle que tu as cité tout simplement :
>un ID en autoincrement pour tout les engegistrements de la base
>le titre de l'enfant, du parent, ou de la page
>et un PARENT_ID qui contient l'ID du parent

Imaginon que l'on veuille afficher les enfants dont l'ID du parent est de 5
Pour l'affichage avec select et option :

<SELECT name="Famille">
<?php
$enfants
mysql_query('SELECT * FROM ta_table WHERE PARENT_ID=5') or die(mysql_error());
while(
$donnees mysql_fetch_array($enfants))
     {
     echo'<OPTION VALUE="' $donnees['titre'] . '">' $donnees['titre'] . '</OPTION>';          
     
}
?>
</SELECT>



Pour l'affichage avec ul et li même chose :

<ul>
<?php
$enfants
mysql_query('SELECT * FROM ta_table WHERE PARENT_ID=5') or die(mysql_error());
while(
$donnees mysql_fetch_array($enfants))
     {
     echo'<li>' $donnees['titre'] . '</li>';          
     
}
?>
</ul>


En esperant que cela puisse t'aider
--
Ce qui donne une éventuelle matière à suspecter une quelconque propagande ...
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels