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

PHP & Base de données Discussion :

Problème avec les jointure pour un menu [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Problème avec les jointure pour un menu
    Bonjour à tous,

    Je suis un ptit nouveau sur ce forum donc je m'escuse si je me trompe d'endroit pour poster mon message.

    alors j'explique mon problème. Je souhaite dans mon espace administration pour créer un système me permettant d'ajouter des menus automatiquement.

    En gros on aura la possibilité de créé un menu qui lui même contiendra les liens du menu.
    Un petit schema ca fait pas de mal :

    MENU
    |-Lien
    |-Lien
    |-Lien

    Voila c'est la présentation basique des menu en fait. En Gros la base de donnée se présenterais comme ceci :

    1ere table :

    menus
    |-menu_id
    |-nom_menu

    2eme table :

    choix
    |-id_choix
    |-id_menu
    |-lien_choix
    |-nom_choix

    Voila. Je prend 2 table très simple pour l'exemple bien entendu car je souhaite me debrouillé pour compliqué le code une fois que j'aurais compris.

    Donc je sais qu'il y a un moyen d'afficher ces menu en faisais un while dans un autre while...

    Le premier while pour appelrr les titre des menu le deuxième while pour aller chercher les différents choix présents dans le menu.

    Toutefois comme je l'ai lu souvent et que je m'en doutais un peu faire ce genre de code n'est pas vraiment bon pour l'optimisation...

    J'ai donc entendu parler des fameuse Jointures.
    Mais je n'y comprend pas grand chose. Du moins, je n'ai pas trouvé le code me permettant d'afficher Automatiquement TOUS les menu et choix.

    Lorsque j'ai essayé je retombé toujours sur :

    MENU1
    Lien_menu1_1

    MENU1
    Lien_menu1_2

    MENU2
    Lien_menu2_1

    MENU2
    Lien_menu2_2

    Brenf un truc du genre qui m'affiche a chaque choix le nom du menu...

    après la journée entière d'hier a chercher je vous demande donc de bien vouloir eclairer ma lanterne

    Merci beaucoup d'avance !!

  2. #2
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    bin tu ne peux pas avoir des résultats.. des fois avec le nom du menu, et des fois non. Tu dois gérer que si le nom du menu n'est pas différent.. tu ne l'affiches pas, sinon tu l'affiches.

    Sinon, tu peux te faire deux requêtes, une pour les menus, et lorsque tu boucles sur tes menus, tu fais une autre requete qui boucle sur les choix du menu.


  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    peut etre tu pourrai nous fournir la requete que tu as utiliser ?
    comme çà on pourrai peut être mieux te dire où tu t'est trompé

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Tiois:
    Ta deuxième solution c'est le while dans un autre while que j'ai cité....

    Pour ta première solution je vois pas comment faire...

    maximenet

    Voici le code en gros que j'ai utilisé (J'ai pas gardé le fichier donc je l'ai refais...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	//Connexion sql....avant ce code...
     
    	$rqt=mysql_query("SELECT * FROM menus LEFT JOIN choix ON choix.id_menu = menu.id_menu");
    	while($reponse=mysql_fetch_array($rqt))
    		{
    			//C'est la que je coince comme vous aurrez pu le comprendre...
    		}
    ?>
    Merci d'avance !

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    //Connexion sql....avant ce code...
     
    $rqt=mysql_query("SELECT * FROM menus LEFT JOIN choix ON choix.id_menu = menu.id_menu");
    $menu = "";
    while($reponse=mysql_fetch_array($rqt))
    {
    <div style="margin-left:40px">
    if ($reponse["id_menu"] <> $menu) {
    <div style="margin-left:40px">
    //ici ton code pour afficher le menu</div>} 
     
    //ici tu affiches les choix
     
    $menu = $reponse["id_menu"];</div>}
    ?>
    je crois que ça règle ton problème !

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Et malheureusement ça ne marche pas...


    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    //include du fichier de connex
    $idcom=connex("***","***");
     
    $rqt=@mysql_query("SELECT * FROM categorie LEFT JOIN menus ON menus.id_cat = categorie.id_cat ORDER by categorie.id_cat",$idcom);
    $menu = "";
    while($reponse=mysql_fetch_array($rqt))
    {
     
        if ($reponse["id_menu"] != $menu) {
     
            echo '<b>'.$reponse['nom_cat'].'</b>';
     
        } 
     
    	echo $reponse['nom_menu'].'<br/>';
    	$menu=$reponse['id_cat'];
    }
    ?>

    Et il m'affiche toujours plusieurs fois le nom de categorie....

    Ca me fait :

    MENU1
    -Lien_menu1_1

    MENU1
    -Lien_menu1_2

    MENU2
    -Lien_menu2_1

    ....

    je dois pas être doué -_-"

    Edit : Si ça y est ça marche c'est moi qui est fait une erreur
    Mais j'ai pas compris comment ça fonctionnait O_o m'enfin bref...
    Merci beaucoup !!!

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

Discussions similaires

  1. Problème avec les jointures
    Par exqo77 dans le forum JDBC
    Réponses: 6
    Dernier message: 17/02/2010, 10h06
  2. [EJB3 Entity] Problème avec les annotations pour une List d'Enum
    Par uiscias dans le forum Java EE
    Réponses: 2
    Dernier message: 31/03/2009, 17h09
  3. Problème avec les Jlist pour changer :)
    Par catwomanette dans le forum NetBeans
    Réponses: 4
    Dernier message: 04/01/2007, 09h44
  4. Réponses: 10
    Dernier message: 08/07/2006, 11h12
  5. Réponses: 2
    Dernier message: 21/07/2005, 12h05

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