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 :

Requete qui n'affiche aucun resulat [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut Requete qui n'affiche aucun resulat
    Bonjour à tous,
    j'ai un petit problème sur un requête sur 2 tables car elle n'affiche aucun résultat. Je n'ai pas d'erreur SQL.
    Et lorsque que le l’exécute en directe dans SQL cela fonctionne, mais pas dans ma page php

    Menu
    id | nom | url | icon | position

    sousmenu
    id | nom | url | icon | position | idmenu

    idmenu correspond à id de la table menu

    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
     
    $req = mysql_query("SELECT m.*, sm.* FROM menu m LEFT JOIN sousmenu sm ON m.id = sm.idmenu ORDER BY m.position, sm.position") or die("Erreur SQL !");
    			 while($data = mysql_fetch_array($req)) 
    			{
     
    			$mid=$data['m.id'];
    			$mnom=$data['m.nom'];
    			$murl=$data['m.url'];		
    			$micon=$data['m.icon'];	
     
    			echo '<li';
    					if ($nav_en_cours == $mnom) 
    					{
    					echo ' id="en-cours"';
    					}
    				//$licone='<span class="icon-fleche-bas"> </span>';
     
    					echo '><a href="'.$murl.'">'.$micon.' '.$mnom.' </a>';
     
    				... ... 	
     
    			echo '</li>';	
    			}
    Quelqu'un aurai une idée d'ou vient le blem ?

    Merci d'avance de votre aide

  2. #2
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    En voyant ton code comme ça, je pense pas qu'il y ait de soucis.

    Pourrais-tu posté le code généré que tu reçois dans ton navigateur? (clicdroit->"afficher le code" ou "code source de la page").

    Pour débugguer, essai de mettre
    dans ta boucle while, afin de voir si tu parcour bien tout les enregistrements.

  3. #3
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Salut est merci de me répondre.
    j'ai modifié le code de la requêt de cette façon et cela fonctionne presque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = mysql_query("SELECT me.id AS meid, me.nom AS menom, me.url AS meurl, me.icon AS meicon, me.position AS meposition,
    			sme.id AS smeid, sme.nom AS smenom, sme.url AS smeurl, sme.icon AS smeicon, sme.position AS smeposition
    			FROM menu AS me LEFT JOIN sousmenu AS sme ON me.id = sme.idmenu ORDER BY me.position, sme.position") or die("Erreur SQL !");
    			while($data = mysql_fetch_array($req))
    resultat de la requete
    meid | menom | meurl | meicon | meposition | smeid | smenom | smeurl | smeicon | smeposition
    1 Accueil blabla.html icon 1 NULL NULL NULL NULL NULL
    2 Actualité blabla.html icon 2 NULL NULL NULL NULL NULL
    8 Galerie blabla.html icon 3 15 Animaux photo_1406651069.html 1
    8 Galerie blabla.html icon 3 16 Paysages photo_1406650775.html 2
    8 Galerie blabla.html icon 3 17 Héros photo_1406649566.html 3
    8 Galerie blabla.html icon 3 18 Voitures photo_1406628866.html 4
    8 Galerie blabla.html icon 3 19 Jeux photo_1406619051.html 5
    13 Rubrique blabla.html icon 4 NULL NULL NULL NULL NULL
    9 Contact blabla.html icon 5 NULL NULL NULL NULL NULL

    mon souci maintenant c'est qu'il me manque 1 ligne.
    la ligne du menu ayant des sousmenu dans la table sousmenu n'est pas affiché

    Menu
    id | nom | url | icon | position
    1 | Accueil | blabla.html | licone | 1
    2 | Actualité| blabla.html | licone | 2
    8 | Galerie| blabla.html | licone | 3
    9 | Contact| blabla.html | licone | 5
    13 | Rubrique| blabla.html | licone | 5

    sousmenu
    id | Nom | url | icon | position | idmenu
    15 | Animaux| blabla.html | licone | 1 | 8
    16 | Paysages| blabla.html | licone | 2 | 8
    17 | Héros| blabla.html | licone | 3 | 8
    18 | Voitures| blabla.html | licone | 5 | 8
    19 | Jeux| blabla.html | licone | 5 | 8

    je galère a 1 mètre du bol de sangria...

    Tu aurais une idée ????

  4. #4
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    Euh, à lire ce que tu postes, il ne manque pas de ligne ^^.
    Il te manque une ligne dans les enregistrement que ta variable data contient?
    Ou il te manque une ligne à l'affichage?

    (perso j'aurais pas fait comme ça concernant le code, mais plutôt avec une double boucle et deux requêtes, certes c'est moins optimisé, mais moins bugogène au passage ^^).

  5. #5
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    si il manque la ligne Galerie seul niveau menu
    si tu regardes chaque tables contient 5 enregistrement et la requête en sort que 9
    il manque la ligne galerie seule
    puisque j'ai les 5 galerie du sousmenu mais pas la galerie du menu

    il doit y avoir une subtilité dans la requête mais laquelle ???

  6. #6
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    Ah oui ça c'est normal, c'est pasque tu utilise un leftjoin:
    en gros on pourrait traduire ta requete par:
    Sort moi tout les enregistrement des menu, pour chaque menu, rajoute les information des sous-menu.

    Le plus simple pour moi serait de passé par une boucle while imbriqué: (en pseudo-code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    requete = select * from menu
    while (resultat = requete)
    {
       afficher menu
       requeteSousMenu = select * from sousmenu where idmenu = resultat[id]
       while (resulatSousMenu = requete)
       {
          afficher sous menu
       }
    }
    Tu vois ce que je veux dire?
    De cette manière tu auras la ligne seule que tu voulais .

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

Discussions similaires

  1. [MySQL] Une requete qui ne retourne aucun résultats
    Par amerex dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/01/2010, 17h46
  2. [MySQL] requete qui n'affiche rien
    Par ffred2908 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/04/2008, 15h07
  3. requete qui n'affiche pas le bon résultat
    Par imsse dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 26/02/2008, 17h46
  4. Requete qui n'affiche pas tout
    Par sebinator dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/12/2007, 17h52
  5. [Requete] qui n'affiche pas les doublons mais sur un seul champs
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/12/2006, 14h57

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