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 :

Afficher résultat d'après un autre résultat [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Points : 85
    Points
    85
    Par défaut Afficher résultat d'après un autre résultat
    Salut

    J'aimerais avoir un menu en liste non ordonnée avec les pages fille aussi en liste non ordonnées:

    Je m'explique
    J'ai ma table pages(id,titre,id_parent)

    Voici ma fonction:

    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
    20
    21
    22
    23
    24
    25
     
    $strsql='SELECT Id_page,Titre FROM pages WHERE Id_parent='.$idpage.' order by Id_page' 
    $resultat=requete_SQL($strsql);
    while ($tabl_result=mysql_fetch_array($resultat)){
            $menu_retour.='<li>';
            $menu_retour.='<a href="index.php?id_page='.$tabl_result['Id_page'].'">';
            $menu_retour.=$tabl_result['Titre'];
            $menu_retour.='<a>';
                $menu_retour.='<ul>';
                $strsql2='select Id_page,Titre from pages where Id_parents='.$tabl_result['Id_page'];
                $resultat2=requete_SQL($strsql2);
                while ($tabl_result2=mysql_fetch_array($resultat2)){
                $menu_retour.='<li>';
                $menu_retour.='<a href="index.php?id_page='.$tabl_result2['Id_page'].'">';
                $menu_retour.=$tabl_result2['Titre'];
                $menu_retour.='<a>';
                $menu_retour.='</li>';}
        $menu_retour.='</ul>';
            $menu_retour.='</li>';
     
            }
     
        $menu_retour.='</ul>';
        return $menu_retour;
    }
    Il apparaît bien mon menu principal (1er boucle) mais pas le deuxième (2ème while)

    Est-ce possible de faire ça?
    si oui, où est l'erreur?
    merci d'avance
    claire

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Points : 204
    Points
    204
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $strsql2='select Id_page,Titre from pages where Id_parents='.$tabl_result['Id_page'];
    cette requete n'est pas valide l'apostrophe n'est pas refermée
    un echo $strsql2; deja pour voir si cette requete fait bien ce que tu veux
    et avec ta requete corrigée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $strsql2="select Id_page,Titre from pages where Id_parents='".$tabl_result['Id_page']."'";
    et à ta 1er requete( mais c'est peut étre du au copier coller)il manque un ; à la fin
    essaye déja ça
    Dernire chose à $resultat2 tu rajoute: or die($strsql2."<br>".mysql_error());pour voir si ça marche toujours pas d'ou vient l'erreur

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    203
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 203
    Points : 85
    Points
    85
    Par défaut
    Je te remercie beaucoup ton or die (je ne pense pas assez souvent à le mettre, j'avais mis un s en trop) et ta correction m'ont sauvé.

    Ca marche
    merci encore
    A plus
    claire

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Points : 204
    Points
    204
    Par défaut
    de rien
    Le mieux pour se connecter sans faire ce style d'erreur
    c'est de créer des fonctions personalisés
    style connect($mes_param)
    requete($param) etc
    ainsi ta fonction est dans une biblitheque de fonction et mise à part ta requete tu ne touche plus au reste.
    le mieux pour moi est de créer une classe mysql ou de se servir de la classe native mysqli
    style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $db = new mysqli('localhost','login','pswd','base');
    if(mysqli_connect_errno())
    {
    echo"Impossible de se connecter à la base";
    }
    $requete="select * from table";
    $result=$db->query($requete);
    une classe perso mysql est encore plus efficasse
    style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $db = new mysql();
    $db->connect("nomBase");
    $requete="select * from table";
    $db->requete($requete,0); 
    while($row=$db->fetch_assoc(0)) {
    $page=$row['PAGE'];
    }
    voilà et la se connecter et envoyer une requete est réglé une bonne fois pour toute

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

Discussions similaires

  1. Boucle for - afficher élément un après l'autre
    Par SkyBlast dans le forum Android
    Réponses: 2
    Dernier message: 18/07/2011, 16h55
  2. [MySQL] afficher une requete en fonction de résultats d'autres requetes
    Par mayers dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/07/2007, 10h42
  3. [LDAP] Résultat vide après recherche sur Active Directory
    Par crashyear dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/10/2006, 17h40
  4. Réponses: 7
    Dernier message: 26/09/2006, 09h38
  5. Réponses: 3
    Dernier message: 06/07/2005, 13h57

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