IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Requete recursive et MySQL


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 145
    Points : 77
    Points
    77
    Par défaut Requete recursive et MySQL
    Bonjour,

    j'ai une table menu avec 3 champs
    id
    nom
    id_pere


    pour afficher mon menu j'utilise une fonction recursive en PHP mais le probleme c'est que ca fait enormement de requete.

    donc je voulais savoir s'il n'y avait pas un moyen de simplifier tout ca avec SQL.

    Merci à vous

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 497
    Points : 6 074
    Points
    6 074
    Par défaut
    Citation Envoyé par TangoZoulou
    Bonjour,

    j'ai une table menu avec 3 champs
    id
    nom
    id_pere


    pour afficher mon menu j'utilise une fonction recursive en PHP mais le probleme c'est que ca fait enormement de requete.

    donc je voulais savoir s'il n'y avait pas un moyen de simplifier tout ca avec SQL.

    Merci à vous
    Si tu veux récupérer un parent et tout ses petits enfant en une requête tu peux utiliser ce system.

    001
    002
    003
    001.001
    001.002
    001.003
    001.004
    001.002.001
    001.002.002
    001.002.003
    Et ainsi de suite. Tu comprend que le (.) représente le neoud enfant. Cette technique permet de récupérer en une requête le daron et sa marmaille . Par contre c'est super délicat si tu supprime un enfant et que tu ne souhaite qu'il y ait de troue. Si ça te gène pas alors c'est bueno mouchachos

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    merci,

    oui ca me parait etre une bonne solution mais je vois pas comment faire la requete pour qu'elle me sorte ce resultat?

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 497
    Points : 6 074
    Points
    6 074
    Par défaut
    Citation Envoyé par TangoZoulou
    merci,

    oui ca me parait etre une bonne solution mais je vois pas comment faire la requete pour qu'elle me sorte ce resultat?
    En faite, c'est un peut de manipulation. Ainsi tu peux récupérer tes informations de manière linière par contre je ne sais pas comment il va concidérer l'ordre.
    001
    001.001
    C'est le premier ou le second qui arrive en premier.
    Je test.

    Edit : En faite j'ai le teste suivant en entrant les enregistrements dans cette ordre.
    Level |
    001
    002
    003
    001.001
    001.002
    001.003
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT level FROM matable ORDER BY level
    001
    001.001
    001.002
    001.003
    002
    003

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SGBD] Problème requete PHP avec MySQL
    Par TomZ dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/06/2006, 01h40
  2. transformation d'une requete oracle en mysql
    Par isa21493 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/03/2006, 16h00
  3. Aide sur requete PHP vers MySQL
    Par pounie dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/02/2006, 15h12
  4. Requetes géometrique dans Mysql
    Par gicquairea dans le forum SGBD
    Réponses: 1
    Dernier message: 15/11/2005, 08h27
  5. requete recursive ( connect prior by)
    Par smedini dans le forum Oracle
    Réponses: 4
    Dernier message: 08/11/2005, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo