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 + affichage des données d'un élément de la liste [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut Liste déroulante + affichage des données d'un élément de la liste
    Bonjour,

    voila j'ai créer une liste déroulante qui prend des noms dans une base de données, et j'aimerais qu'une fois le nom séléctionné on puisse afficher ses données personnelles dans un tableau (Nom, prenom, adresse...)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form>
          <select>
            <?
    		$sqlme="SELECT CONCAT(Nom, ' ', Prenom) as Membre from tbl_membre";
    		$resultatme=mysql_query($sqlme);
    		while($val=mysql_fetch_array($resultatme)) {
    		echo "<option>".$val["Membre"]."</option>\n";
    		}
     
    	mysql_close($database);
    	?>
          </select>
          <input name="AMembre" type="button" value="Afficher" />
    </form>
    Pour la mise en forme dans le tableau, ce n'est pas un problème mais je ne sais pas comment récuperer un élément de la liste pour recréer une requête SQL.

    Si vous voulez jeter un oeil sur mon test : http://www.etoileduleman.ch/test/membres.php
    le bouton ne sert à rien pour l'instant.

    Merci d'avance.

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Il faut que tu spécifies les attributs à ton FORM (au moins ACTION et METHOD) et à ton SELECT (au moins NAME). Il faut aussi que ton bouton de validation soit de type SUBMIT. Tu peux mettre en ACTION de ton FORM le nom de ta page courante, comme ça quand l'utilisateur valide le FORM tu recharges ta page en fait, et tu peux récupérer la valeur sélectionnée dans $_POST['nom_du_select'] si tu choisis la méthode POST. Tu testes avec isset($_POST['nom_du_select'] pour savoir si la variable existe, si c'est pas le cas tu affiches juste le FORM, sinon tu affiches les données qui vont bien. Bon courage.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Voila j'ai corriger le code mais j'ai encore 2-3 petits problèmes :
    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
        <form method="POST" action="http://www.etoileduleman.ch/test/membres.php">
          <select name="MembreFanfare">
            <?
    		$sqlme="SELECT CONCAT(Nom, ' ', Prenom) as Membre from tbl_membre";
    		$resultatme=mysql_query($sqlme);
    		while($val=mysql_fetch_array($resultatme)) {
    		echo "<option>".$val["Membre"]."</option>\n";
    		}
    	?>
     
          </select>
          <input name="AMembre" type="submit" value="Afficher" />
        </form>
    	<?	
    	$NomMembre = $_POST['MembreFanfare']
    	if (isset($NomMembre)) 
    	{    
    		echo 'Cette variable existe, donc je peux l\'afficher.';
    		echo $NomMembre;
    	}
    	?>

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oui et c'est quoi ces 2/3 problèmes
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par JWhite
    Oui et c'est quoi ces 2/3 problèmes
    euh oué désolé...

    page blanche qui s'affiche...je pense pas que ça t'aide plus... mais pas de message d'erreur.

    Je sais pas si t'as une idée d'erreur de syntaxe ou quelque chose du genre

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Il manque un point-virgule avant le if du deuxième bloc.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Utilise <?php à la place de <? (ça va pas corriger un bug, mais juste améliorer ta syntaxe).
    Ferme ta connexion une fois que tu n'en a plus besoin.

    Et comme le dit JWhite, le problème est ici :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $NomMembre = $_POST['MembreFanfare'];

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    merci beaucoup pour votre aide.

    Bonne journée

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    encore une chose :
    j'ai essayé d'utiliser une variable php dans ma requête SQL mais ça ne marche pas tout a fait. J'ai une page blanche sans message d'erreur.
    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
    26
    27
    28
    29
    <form method="POST" action="http://www.etoileduleman.ch/test/membres.php">
          <select name="MembreFanfare">
            <?php
    		$sqlme="SELECT CONCAT(Nom, ' ', Prenom) as Membre from tbl_membre";
    		$resultatme=mysql_query($sqlme);
    		while($val=mysql_fetch_array($resultatme)) {
    		echo "<option>".$val["Membre"]."</option>\n";
    		}
    	?>
          </select>
          <input name="AMembre" type="submit" value="Afficher" />
        </form>
        <br />
        <br />
        <?php	
    	$NomMembre = $_POST['MembreFanfare'];
    	if (isset($NomMembre)) 
    	{    
    		$sql_me="SELECT CONCAT(Nom, ' ', Prenom) as Membre, Adresse, NPA, Lieu, Birthday, age, tel, portable, annee  FROM `tbl_membre` WHERE $NomMembre == Membre;";
    		$mysql_result_me = mysql_query_me($sql_me);
    		while ($ligne_me = mysql_fetch_array($mysql_result_me))
    		{ ?>
            <? print($ligne_me["Membre"]); ?><br />
          	</p>
          	<? print($ligne_me["Adresse"]); ?><br />	
    		}	
    	}
    <?php	mysql_close($database);
    	?>
    alors si quelqu'un aurais une idée je suis preneur.

    a+ bonne soirée

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Plutôt une requête dans ce sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_me="SELECT CONCAT(Nom, ' ', Prenom) as Membre, Adresse, NPA, Lieu, Birthday, age, tel, portable, annee  FROM `tbl_membre` WHERE Membre = '$NomMembre'";
    Et pour voir les messages d'erreur il faut ajouter "or die(mysql_error())" au bout des mysql_query par exemple. Tu as un mysql_query_me qui traîne aussi je sais pas si c'est normal...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Merci pour tous ça aide un bout.

    Par contre en mettant le "or die(mysql_error())" il me sort une "Unknown column 'Membre' in 'where clause'" donc je suppose qu'il gère pas les alias dans les clause where?

    Je suis un peu coincé la...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Hihihi, ce n'est pas méchant, mais j'avais besoin de rire, un grand merci à toi (sérieu ça m'a fait vraiment du bien).

    Il ne faut pas mettre le or die[...] dans la requête, mais après mysql_query() .
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultatme=mysql_query($sqlme) or die(mysql_error());
    Bonne soirée.

    P.s : Ce n'est pas méchant, c'est juste que j'connais très bien quelqu'un qui à penser la même chose à ses débuts

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par SpiritOfDoc

    Il ne faut pas mettre le or die[...] dans la requête, mais après mysql_query() .
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultatme=mysql_query($sqlme) or die(mysql_error());
    Au risque de te decevoir ç'est ce que j'avais fait dès la mise en place du "or die.."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $NomMembre = $_POST['MembreFanfare'];
    	if (isset($NomMembre)) 
    	{    
    		$sql_me="SELECT CONCAT(Nom, ' ', Prenom) as Membre, Adresse, NPA, Lieu, Birthday, age, tel, portable, annee  FROM `tbl_membre` WHERE Membre = '$NomMembre';";
    		$mysql_result_me = mysql_query($sql_me) or die (mysql_error());
    mais j'accepte sans problème toute forme d'aide étant donnés que plus je m'approche de la soluce plus je coince...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Snifffouille.

    Et quand tu rentres ta requête directement dans PHPMyAdmin ça donne quoi ?

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    bin étant donnée qu'un des éléments de la requete est une variable php ça risque pas de marcher super...

    mais j'ai tésté ça :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT(Nom, ' ', Prenom) as Membre, Adresse, NPA, Lieu, Birthday, age, tel, portable, annee  FROM `tbl_membre` WHERE Membre = 'Alvarez Faustino'
    en remplaçant ce que la variable donne.

    Et ça me met le même message d'erreur

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    bon voila j'ai trouvé la soluce :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT(Nom, ' ', Prenom) as Membre, Adresse, NPA, Lieu, Birthday, age, tel, portable, annee  FROM `tbl_membre` WHERE CONCAT( Nom, ' ', Prenom ) = '$NomMembre';

    Comme je m'en doutais on ne peut pas utiliser de nom d'alias pour les clauses de la condition where alors j'ai simplement refait la concaténation et ça fonctionne.

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

Discussions similaires

  1. Liste déroulant avec des données d'une bd
    Par kapi dans le forum JDBC
    Réponses: 4
    Dernier message: 18/07/2007, 22h30
  2. Affichage des valeurs disponibles dans une zone de liste déroulante
    Par azerty dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h29
  3. Réponses: 4
    Dernier message: 25/05/2007, 15h25
  4. [ODBC] Liste déroulante à partir des données d'Access
    Par Aillyzeux dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/04/2007, 13h38
  5. liste modifiable - affichage des données
    Par puppusse79 dans le forum Access
    Réponses: 2
    Dernier message: 07/06/2006, 16h31

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