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 :

Remplissage d'une liste déroulante à partir d'une requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 51
    Points : 37
    Points
    37
    Par défaut Remplissage d'une liste déroulante à partir d'une requête SQL
    bonjour
    j'ai un ptit script qui normalement doit remplir une liste déroulante à partir d'une table dans une bd mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     echo('<select name="table">');
    $query1=mysql_query("SELECT prenom from vaches",$link) ;
       while ($ligne1=mysql_fetch_row($query1))
       { 
     
    echo('<option >'$ligne1->prenom'</option>'); 
    } 
        echo('</select>');
    mais il m'affiche une erreur à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo('<option >'$ligne1->prenom'</option>');
    aidez moi si vous voyez le truc
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    Donne le message d'erreur parce que là on doit deviner.

    Mais je pense que tu dois concaténer tes chaines (avec le point '.'):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo('<option >'.$ligne1->prenom.'</option>');

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Points : 322
    Points
    322
    Par défaut
    et aussi si tu veut utiliser le nom du champ c'est pas mysql_fetch_row mais mysql_fetch_assoc (ou mysql_fetch_array)

    Avec mysql_fetch_row(), tu récupère les données avec les index: $data[0] $data[1] ...

    Avec mysql_fetch_assoc(), tu récupère les données avec les noms de champs: $data['nom'] $data['id_personne] ...

    Avec mysql_fetch_array() tu as les 2 (index et noms de champs)

    et comme l'a dit billoum, il faut concaténer avec des points .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'texte '.$variable.' texte';....

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 51
    Points : 37
    Points
    37
    Par défaut
    j'ai concaténer avec les . mais il m'affiche la liste mais vide; je veux qu'il m'affiche toutes les données (les enregistrments) est ce que je dois changer de fonction
    merci

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Points : 322
    Points
    322
    Par défaut
    1. est-ce que tu as testé la requete sous phpmyadmin pour voir si elle retourne quelque chose?
    2. est-ce que tu as remplacé comme je t'ai dis mysql_fetch_row par mysql_fetch_assoc ?
    3. je vois pas sinon...

    EDIT: la syntaxe $ligne1->prenom est une syntaxe objet. je sais pas si ça marche dans ton cas. essai plutot $ligne1['prenom']
    EDIT2: et pas besoin de parenthèses avec un echo (je sais pas si ça marche quand même avec les parenthèses)

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 51
    Points : 37
    Points
    37
    Par défaut
    voilà le nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     echo('<select name="table">');
    $query1=mysql_query("SELECT prenom from vaches",$link) ;
     
       while ($ligne1=mysql_fetch_assoc($query1))
       { 
    //la concatenation des champs se fait ici 
    echo('<option >'.$ligne['prenom'].'</option>'); 
    } 
        echo('</select>');
    en exécutant la req dans phpmyadmin elle retourne 18 enregistrments
    mais elle ne marche toujoursn pas dans ma page, en défilant la liste déroulante je remarque qu'elle dcontiennent 18 "valeur(ou espace)" mais pas de données

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 111
    Points : 62
    Points
    62
    Par défaut
    as tu essayer d'écrire comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     echo('<select name="table">');
    $query1=mysql_query("SELECT prenom from vaches",$link) ;
       while ($ligne1=mysql_fetch_array($query1))
       { 
     
    echo('<option >$ligne1[prenom]</option>'); 
    } 
        echo('</select>');
    a moins que tu veuille absoluement un mysql_fetch_row.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 51
    Points : 37
    Points
    37
    Par défaut
    merci les gars ça marche
    est ce que juste tu peux me dire la diff entre array, row et assoc

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 111
    Points : 62
    Points
    62
    Par défaut
    finalement tu as mis quoi ???

    et la difference: ben je te laisse lire ceci :

    http://www.estvideo.com/dew/index/20...ql_fetch_array

    voili voilou.

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Points : 322
    Points
    322
    Par défaut
    Citation Envoyé par gaucher
    merci les gars ça marche
    est ce que juste tu peux me dire la diff entre array, row et assoc
    Citation Envoyé par marsupix 5 posts plus haut
    Avec mysql_fetch_row(), tu récupère les données avec les index: $data[0] $data[1] ...

    Avec mysql_fetch_assoc(), tu récupère les données avec les noms de champs: $data['nom'] $data['id_personne] ...

    Avec mysql_fetch_array() tu as les 2 (index et noms de champs)
    et il n'y avait toujours rien dans ta page car tu avait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($ligne1=mysql_fetch_assoc($query1))
       { 
    //la concatenation des champs se fait ici 
    echo('<option >'.$ligne['prenom'].'</option>');
    donc forcément $ligne1 != $ligne...

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

Discussions similaires

  1. [XL-2003] Liste déroulante à partir d'une liste déroulante
    Par ourlet dans le forum Excel
    Réponses: 6
    Dernier message: 27/06/2010, 18h57
  2. Réponses: 11
    Dernier message: 09/03/2009, 12h47
  3. Charger une liste déroulante à partir d'une base de donnée
    Par mr_simon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/07/2007, 08h32
  4. remplissage d'une liste déroulante à partir d'une autre liste
    Par monphp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 12h28
  5. Réponses: 13
    Dernier message: 23/06/2006, 12h12

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