Besoin d'aide pour une requête MySQL jointe + affichage (hiérachie) - PHP - Programmation
Marsh Posté le 20-07-2009 à 16:56:14
Je vais pas vraiment répondre à ta question...
Mais... Pourquoi ne pas utiliser une clé étrangère dans taxonomie_data plutôt qu'une table taxonomie_hierarchie pour faire tes associations ?
Et ensuite auto jointure et c'est réglé.
Marsh Posté le 20-07-2009 à 17:14:09
Je ne sais pas, comme je l'ai dit ça vient de la structure de Drupal que j'ai repompé car je trouve le système génial.
Mais spa bête ce que tu dis
Mais que ce soit intégré ou pas, je ne sais pas comment trier les résultats pour en faire une belle liste HTML tenant compte de la hiérarchie.
De plus, le nombre de sous hiérarchie est illimité.
On peut avoir
Entrée > Salade > Riz > Basmati................
Merci pour cette première réponse en tout cas
Marsh Posté le 20-07-2009 à 17:22:55
A mon avis si tu as un hiérarchie infinie une auto jointure ne fera pas l'affaire.
Faut que tu rentre dans une boucle ! Par exemple tu va chercher tout les élément dont le parent et 0, donc les éléments racines. Ensuite pour chacun tu va chercher ses enfants, et pour chaque enfants tu va chercher ses enfants et ainsi de suite.
Marsh Posté le 20-07-2009 à 17:30:08
Je suis étonné par ce que Drupal ne gère pas comme ça, je viens de trouver la requête, la voici :
Code :
|
Donc il doit y avoir un tri effectué sur l'array, mais je ne sais pas comment faire et je ne trouve pas l'endroit où la donnée est triée dans Drupal (c'est un bordel monstre).
Marsh Posté le 20-07-2009 à 18:01:07
c'est trié via le poids. Sans le poids, tu serais obligé de faire des requêtes récursives, mais avec le poids, tu t'en sors.
Marsh Posté le 20-07-2009 à 18:11:00
Oui mais je peux changer par autre chose.
En gros, je suis obligé de faire plusieurs requêtes ?
C'est d'un compliqué ce bidule...
Marsh Posté le 20-07-2009 à 19:01:11
Suivant ce que tu veux mettre comme hiérarchie tu peux t'en sortir avec une STI je pense..
Marsh Posté le 20-07-2009 à 19:04:19
STI?
"suivant ce que tu veux mettre comme hiérarchie" ? C'est à dire ?
Pas compris là
Marsh Posté le 20-07-2009 à 19:07:47
Suivant le degré de ressemblance des différents objets qui ont un lien de parenté, tu peux peut-être utiliser un modèle de single table inheritance..
ça donne des tables assez volumineuses si t'as beaucoup d'objets différents mais après c'est assez simple à gérer ..
Marsh Posté le 20-07-2009 à 16:44:12
Bonjour,
Je suis en train de développer un site web mais mes connaissances en MySQL me font bloquer sur ce que pas mal d'entre vous doivent considérer comme une broutille.
M'apporteriez-vous un peu d'aide ?
J'ai deux tables dans ma base MySQL.
Je souhaiterais afficher, à partir des données suivantes :
taxonomie_data
taxonomie_hierarchie
La liste qui suit :
Entrées
Plats
En sachant que dans la table taxonomie_hierarchie, 'parent' est l'équivalence du tid de la table taxonomie_data (afin de pouvoir recouper les données).
Quelle requête effectuer ?
Comment l'afficher en regroupant les termes relatifs aux "Entrées" et ceux relatifs aux "Plats" ?
Je suis paumé, j'ai repris cette structure de la taxonomie de Drupal qui est très très bien faite.
Merci à vous !
Mais je suis totalement infoutu d'y arriver.