|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 37 ![]() |
Bonsoir,
J'ai une table où je veux stocker toutes les entreprises avec les filiales qu'elles contiennent, la table se présente comme suit : Citation:
Pour l'instant je fais un SELECT * FROM entreprises WHERE id_mere = x pour sortir toutes les entreprises qui font partie de l'entreprise mère mais comment les ordonner de façon hierarchique selon les id_parent ? J'espère que j'ai assez expliqué ma question... Merci d'avance RP |
|
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 654 ![]() |
bonjour,
MySql ne supporte pas les requêtes récursive à partir de là vous ne pouvez pas faire ce que vous demandez en sql.... sauf si un order by sur id_parent suffit |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 37 ![]() |
Merci de ta réponse, je suis donc obligé de passer par une boucle PHP...
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 37 ![]() |
Bonsoir,
Je reviens sur mon problème car je bloque un peu... Comment je peux faire pour sortir toutes mes occurences sous forme d'une arborescence ? Comme par exemple : Entreprise 1 Sous entreprise 1.1 Sous entreprise 1.2 Sous entreprise 1.3 Entreprise 2 Sous entreprise 2.1 Sous entreprise 2.2 Sous entreprise 2.3 ... Merci d'avance |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Connais-tu cet article de SQLPro afférent à la Gestion d'arbres par représentation intervallaire ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 37 ![]() |
Bonsoir,
Maintenant je le connais, merci Mais ça sous entend de stocker toutes mes occurences et sous occurences dans les mêmes plages d'ID chose que je ne peux pas gérer dans le temps car mes utilisateurs (multiples) pourront créer des entreprises et sous entreprises n'importe quand. Le principe de SQLPro convient tout à fait à un arbre figé. A ce moment là, est-ce qu'il existe une autre méthode que lister les occurences et pour chaque occurence lister tous ses enfants et ainsi de suite ? |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Alors c'est que tu n'as pas bien lu cet article parce que, de mémoire, y sont exposées les méthodes d'insertion et/ou de suppression d'un élément, voire d'une branche de l'arborescence.
Donc il n'y est en aucune manière question d'un arbre figé.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#8 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Dans la mesure où MySQL ne dispose pas des requêtes récursives, la gestion de l'arborescent par arbre intervallaire reste la meilleure solution.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 872 ![]() |
salut,
tu peux tout simplement faire ta récursion grâce à une procédure stockée qui va remonter ta table telle qu'elle est implémentée en se basant sur id_parent pour trouver chaque entreprise de degré supérieur... c'est bien sur moins efficace qu'une écriture à base de requête hiérarchique implémenté en natif comme sur un oracle, mais ça marche très bien et ça a le mérite de t'éviter les aller-retour php-mysql ta structure suffit largement à implémenter ça... pour générer ton arbre il suffit de 2 procédures... une procédure principale qui va:
en gros c'est ce que te ferait une requête hiérarchique donc on ne fait que faire ce qui n'existe pas sous mysql après à toi de voir ce qui convient le mieux selon tes besoins...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com