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 :

Liste déroulante en PDO à partir d'une BDD [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut Liste déroulante en PDO à partir d'une BDD
    Bonjour,

    Je suis en train de transformer mes scripts en mysql et viens juste de passer en PDO.
    J'arrive à faire la connexion avec une base mais rencontre une petite difficulté pour remplir une liste déroulante à partir d'une BDD.
    Le but est qu'elle affiche les différentes valeurs du champ "genre" lorsque le champ "famille" est égal à la variable $_SESSION['ChoixFamille']

    Je passe sur la connexion qui est Ok:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    				$SQL = $pdo->query("SELECT DISTINCT genre FROM plant WHERE family LIKE '".$_SESSION['ChoixFamille']."' ORDER by genre ASC");
    				$SQL->setFetchmode(PDO::FETCH_OBJ);
     
    				while ($row = $resultat->fetch() )
    					{
    					echo "<option value=\"".$row["genre"]."\">".$row["genre"]."</option>\n";
    					}
     
    				echo ("</select>");
    				echo "<input type = 'submit' value = 'Valider'>";
    				echo ("</form>");
    Le formulaire s'affiche mais il est vide.
    Merci de bien vouloir me mettre sur la piste.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Bonjour,

    Que donnes le code html généré ? As-tu essayé d'afficher ta variable de session ?
    Peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LIKE '%".$_SESSION['ChoixFamille']."%'
    Cordialement.

  3. #3
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Bonjour ^^.

    Tu as regardé si ta requête te renvoi quelque chose?
    Pour cela tu peux juste faire un COUNT tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'COUNT : '.count($row).'\n';
    Au plaisir ^^

  4. #4
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Bonjour arthur57 et merci pour ton intervention.

    Citation Envoyé par arthur57 Voir le message
    Que donnes le code html généré ?
    <form action='fin.php' method='post'>
    <select name = 'ChoixGenre'>
    <option value="Aucun genre sélectionné">Sélectionnez le genre</option>
    Et ... c'est tout, cela s'arrête là



    Citation Envoyé par arthur57 Voir le message
    As-tu essayé d'afficher ta variable de session ?
    Oui, oui.... j'ai passé la dessus mais cette variable de session s'affiche correctement.

    Citation Envoyé par arthur57 Voir le message
    Peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LIKE '%".$_SESSION['ChoixFamille']."%'
    Cela donne le même résultat

  5. #5
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Bonjour Cat81. Merci de ton intervention.

    Citation Envoyé par Cat81 Voir le message
    Bonjour ^^.

    Tu as regardé si ta requête te renvoi quelque chose?
    Pour cela tu peux juste faire un COUNT tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'COUNT : '.count($row).'\n';
    Au plaisir ^^
    Non, cela n'affiche rien et ça me semble "normal" car je pense que des lignes apparaitraient en dessous.
    Et si cette variable est vide, c'est qu'il y a un problème avant, problème que je ne vois pas.

  6. #6
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Non, cela n'affiche rien et ça me semble "normal" car je pense que des lignes apparaitraient en dessous.
    Et si cette variable est vide, c'est qu'il y a un problème avant, problème que je ne vois pas.
    Normalement ça devrait au moins afficher 0 même si le SELECT renvoi une valeur NULL.

    Par rapport à ta variable de session, as tu vérifié que celle-ci soit sans espaces au début et à la fin?
    Quand tu l'affiches en l'entourant de caractère, cela donne quoi?
    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '___'.$_SESSION['ChoixFamille'].'_____';

  7. #7
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Re-merci Cat81,

    Citation Envoyé par Cat81 Voir le message
    Normalement ça devrait au moins afficher 0 même si le SELECT renvoi une valeur NULL.
    Où comptes-tu le mettre pour qu'il affiche $row ?


    Citation Envoyé par Cat81 Voir le message
    Par rapport à ta variable de session, as tu vérifié que celle-ci soit sans espaces au début et à la fin?
    Quand tu l'affiches en l'entourant de caractère, cela donne quoi?
    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '___'.$_SESSION['ChoixFamille'].'_____';
    Je viens de vérifier ... pas d'espace avant ni après.

  8. #8
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $SQL = $pdo->query("SELECT DISTINCT genre FROM plant WHERE family LIKE '".$_SESSION['ChoixFamille']."' ORDER by genre ASC");
    $SQL->setFetchmode(PDO::FETCH_OBJ);
     
    while ($row = $resultat->fetch() )
            {
    	echo "<option value=\"".$row["genre"]."\">".$row["genre"]."</option>\n";
            }
     
    echo ("</select>");
    echo "<input type = 'submit' value = 'Valider'>";
    Je viens de voir qu'il n'y a pas de lien entre la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQL->setFetchmode(PDO::FETCH_OBJ);
    Et la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row = $resultat->fetch() )
    Ce que je veux dire, c'est que ta variable $resultat apparaît de nulle part et donc, elle n'est pas relié à la requête du dessus.
    Il te manque juste le $resultat = devant la ligne 2, c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = $SQL->setFetchmode(PDO::FETCH_OBJ);

  9. #9
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Effectivement Cat81,

    C'est une erreur; merci beaucoup.
    Ceci étant, il doit y en avoir une autre car le résultat reste le même.

  10. #10
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Denis,

    Peux-tu nous montrer ton code depuis le début de la balise <select>?

  11. #11
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Citation Envoyé par Cat81 Voir le message
    Denis,

    Peux-tu nous montrer ton code depuis le début de la balise <select>?
    Pas de soucis, Cat81:
    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
    				<select name = 'ChoixGenre'>
    				<option value="Aucun genre sélectionné">Sélectionnez le genre</option>
     
    				<?php
    					$SQL = $pdo->query("SELECT DISTINCT genre FROM plant WHERE family LIKE '".$_SESSION['ChoixFamille']."' ORDER by genre ASC");
    					$resultat = $SQL->setFetchmode(PDO::FETCH_OBJ);
     
    					while ($row = $resultat->fetch() )
    						{
     
    						echo "<option value=\"".$row["genre"]."\">".$row["genre"]."</option>\n";
    						}
     
    					echo ("</select>");
    					echo "<input type = 'submit' value = 'Valider'>";
    					echo ("</form>");
     
    					$prep->closeCursor();
    				?>

  12. #12
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Je reprend les dires d'Arthur53,
    Peux tu retester avec les '%' en plus ^^?

    Bonjour,

    Que donnes le code html généré ? As-tu essayé d'afficher ta variable de session ?
    Peut-être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE '%".$_SESSION['ChoixFamille']."%'
    Cordialement.

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Citation Envoyé par Cat81 Voir le message
    Je reprend les dires d'Arthur53
    Arthur57

    Sinon tu peux essayer déjà d'exécuter ta requête SELECT sans restrictions dans un premier temps

  14. #14
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Bonjour Cat81,

    Citation Envoyé par Cat81 Voir le message
    Je reprend les dires d'Arthur53,
    Peux tu retester avec les '%' en plus ^^?
    J'avais précédé tes désirs et déjà testé de nouveau.
    Malheureusement, rien de nouveau.

  15. #15
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Bonjour arthur57,

    Citation Envoyé par arthur57 Voir le message
    Arthur57

    Sinon tu peux essayer déjà d'exécuter ta requête SELECT sans restrictions dans un premier temps
    Même résultat, malheureusement
    C'est dingue..... Je pense que c'est encore une erreur grossière du genre un ; en + ou en -

  16. #16
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Re,

    T'as testé ta requête (avec les valeurs que tu reçoit via tes GET) direct dans phpmyadmin?

  17. #17
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Je viens de remarquer :

    Citation Envoyé par Denis Placé Voir le message
    <form action='fin.php' method='post'>
    <select name = 'ChoixGenre'>
    <option value="Aucun genre sélectionné">Sélectionnez le genre</option>
    Et ... c'est tout, cela s'arrête là
    Quand tu dis tout s'arrête là, c'est qu'il n'y a aucune suite ?
    Sinon va falloir y aller étape par étape, essaie ta requête SQL sans le where dans ton sgbd, avec le where, affiche la valeur de ton $_SESSION, de ta requête en entier (que tu pourra copier/coller dans ton sgbd).
    Tu verra déjà si ta requête fonctionne.
    Sinon tu as les erreurs php qui sont activées ?

    Cordialement.

  18. #18
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Citation Envoyé par Cat81 Voir le message
    Re,

    T'as testé ta requête (avec les valeurs que tu reçoit via tes GET) direct dans phpmyadmin?
    Oui, Cat81, merci, mon SELECT retourne bien les bonnes valeurs dans phpmyadmin

  19. #19
    Membre éclairé Avatar de Cat81
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 56
    Par défaut
    Citation Envoyé par arthur57 Voir le message
    Je viens de remarquer :



    Quand tu dis tout s'arrête là, c'est qu'il n'y a aucune suite ?
    Sinon va falloir y aller étape par étape, essaie ta requête SQL sans le where dans ton sgbd, avec le where, affiche la valeur de ton $_SESSION, de ta requête en entier (que tu pourra copier/coller dans ton sgbd).
    Tu verra déjà si ta requête fonctionne.
    Sinon tu as les erreurs php qui sont activées ?

    Cordialement.
    Question bête : t'as mis la connexion à la BD plus haut? Parce que comme souligne Arthur57, si ça s’arrête là c'est que dans les lignes de code php y'a une m**** ^^

  20. #20
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 485
    Par défaut
    Citation Envoyé par Cat81 Voir le message
    Question bête : t'as mis la connexion à la BD plus haut? Parce que comme souligne Arthur57, si ça s’arrête là c'est que dans les lignes de code php y'a une m**** ^^
    Oui bien sûr , la connexion à la BDD est bien là.
    ceci étant, je reste persuadé qu'il y a une erreur bête de ce type là mais ... que je ne vois pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Liste déroulante à partir d'une BDD avec Mysqli en procédural
    Par Denis Placé dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/08/2017, 13h04
  2. [2.x] [Silex] Liste déroulante dans form à partir d'une classe
    Par clem_alain dans le forum Symfony
    Réponses: 4
    Dernier message: 13/01/2016, 15h14
  3. [AC-2010] Alimenter une liste déroulante de formulaire à partir d'une 2ème base
    Par metalleuse dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/06/2015, 10h10
  4. Réponses: 4
    Dernier message: 04/09/2007, 18h54
  5. Réponses: 1
    Dernier message: 26/08/2007, 22h21

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