Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1302 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Besoin d'aide pour une requête MySQL jointe + affichage (hiérachie)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour une requête MySQL jointe + affichage (hiérachie)

n°1906884
vanquishV1​2
se coucher tard nuit
Posté le 20-07-2009 à 16:44:12  profilanswer
 

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
http://upload.pbase.com/image/115177805/original.jpg
taxonomie_hierarchie
http://upload.pbase.com/image/115177809/original.jpg
 
La liste qui suit :
Entrées

  • Salades
  • Feuilletés
  • Légumes
  • Fromage

Plats

  • Viande
  • Volaille


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.

mood
Publicité
Posté le 20-07-2009 à 16:44:12  profilanswer
 

n°1906892
dwogsi
Défaillance cérébrale...
Posté le 20-07-2009 à 16:56:14  profilanswer
 

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é.


Message édité par dwogsi le 20-07-2009 à 17:02:43

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1906903
vanquishV1​2
se coucher tard nuit
Posté le 20-07-2009 à 17:14:09  profilanswer
 

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 :bounce:

n°1906909
dwogsi
Défaillance cérébrale...
Posté le 20-07-2009 à 17:22:55  profilanswer
 

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.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1906911
vanquishV1​2
se coucher tard nuit
Posté le 20-07-2009 à 17:30:08  profilanswer
 

Je suis étonné par ce que Drupal ne gère pas comme ça, je viens de trouver la requête, la voici :

Code :
  1. $result = mysql_query("
  2. SELECT
  3. t.tid,
  4. t.*,
  5. parent
  6. FROM
  7. taxonomie_data t
  8. INNER JOIN
  9. taxonomie_hierarchie h
  10. ON
  11. t.tid = h.tid
  12. WHERE
  13. t.vid = 1
  14. ORDER BY
  15. poids, nom
  16. " );


 
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).

n°1906922
rufo
Pas me confondre avec Lycos!
Posté le 20-07-2009 à 18:01:07  profilanswer
 

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.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1906926
vanquishV1​2
se coucher tard nuit
Posté le 20-07-2009 à 18:11:00  profilanswer
 

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... :pt1cable:

n°1906947
esox_ch
Posté le 20-07-2009 à 19:01:11  profilanswer
 

Suivant ce que tu veux mettre comme hiérarchie tu peux t'en sortir avec une STI je pense..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1906950
vanquishV1​2
se coucher tard nuit
Posté le 20-07-2009 à 19:04:19  profilanswer
 

STI?
"suivant ce que tu veux mettre comme hiérarchie" ? C'est à dire ?
 
Pas compris là

n°1906952
esox_ch
Posté le 20-07-2009 à 19:07:47  profilanswer
 

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 ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Besoin d'aide pour une requête MySQL jointe + affichage (hiérachie)

 

Sujets relatifs
Requete avec somme sur valeur et filtre sur dateutf8 plus aide meilleur codage
Aide sur traitement du fichier[Résolu][Expression Régulière] Besoin d'aide
[MySQL]Regex dans un whereShell : besoin d'aide pour mon script
Qt aide QRegExp[Access 2003]Créer une table à partir d'une requète
Plus de sujets relatifs à : Besoin d'aide pour une requête MySQL jointe + affichage (hiérachie)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR