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éroulant et Bdd


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut Liste déroulant et Bdd
    Bonjour,

    Je viens vous pour tenter de résoudre un problème que je pense évident, sauf pour moi.

    J’ai une base de données avec une table t_contacts qui contient les champs Id, Civilite, Nom, Prenom.
    Je souhaite dans un premier temps, en sélectionnant un nom dans une liste déroulante, afficher, Id, Civilite, Nom, Prenom correspondant à la sélection.

    Dans le code ci-dessous, tout ce que j’arrive à afficher c’est le Nom et c’est tout.

    Je ne vois pas la panne.
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <?php
    //====  OUVERTURE DE LA TABLE  t_contacts   
    include("Connexion.php");
    $connect0 = mysqli_connect($hote,$login,$mdp,$bd);
    mysqli_select_db($connect0, $bd) ;
    $result0 = mysqli_query($connect0, "SELECT Id FROM t_contacts WHERE Id = '$Id' ");
      while($row = mysqli_fetch_array($result0, MYSQLI_BOTH))
      {
      $Id           = ($row['Id'])          ;
      $Nom          = ($row['Nom'])         ;
      $Prenom       = ($row['Prenom'])      ;
      $Civilite     = ($row['Civilite'])    ;
      } //while  
      mysqli_close($connect0); 	
     
     
     
     //====  OUVERTURE DE LA TABLE  t_contacts   
    include("Connexion.php");
    $connect0 = mysqli_connect($hote,$login,$mdp,$bd);
    mysqli_select_db($connect0, $bd) ;
     
    //  Liste déroulante
    echo "
    <div align='center'> 
        <form name='RechercherNom' action='Test1.php' method='post' enctype='multipart/form-data'>
    	<table class='table' rules='none' border=2px> 
    	<tr class='formulaire_1' onmouseover='this.className=\"formulaire_hover\"' onmouseout='this.className=\"formulaire_1\"'>
          <td width='20%'>Rechercher un contact :</td>
    	  <td><select name='Nom' style='width:19.6em'  value='Chercher' onchange='RechercherNom.submit();' >";
    	  	echo "<option value=''  selected='selected'></option>"; 
    	    $result0 = mysqli_query($connect0, "SELECT * FROM t_contacts ORDER BY Nom ASC");
    	    while($row = mysqli_fetch_array($result0, MYSQLI_BOTH))
             { echo "<option value='".$row["Nom"]."'>".$row["Nom"].' '.$row["Prenom"]."</option>"; }
           echo"</select>
    	 </td>  
       </tr>
       </table>
       </form>
       ";
      mysqli_close($connect0);   
     
     
    echo $Id."       ".$Civilite." ".$Nom." ".$Prenom."<br>";
    Merci de votre aide


    Alain

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ liste déroulante : c'est l'id qu'il faut mettre en value, car l'id est unique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name='Idcontact' ...
    ......
    	    while($row = mysqli_fetch_array($result0, MYSQLI_BOTH))
             { echo "<option value='".$row["Id"]."'>".$row["Nom"].' '.$row["Prenom"]."</option>"; }
    2/ on récupère donc l'id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Id = ( !empty($_POST['Idcontact']) )? intval($_POST['Idcontact']) : 0;
    3/ requête : on veut tous les champs -> SELECT *....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result0 = mysqli_query($connect0, "SELECT * FROM t_contacts WHERE Id = '$Id' ");
    Dernière modification par Invité ; 13/09/2017 à 08h24.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Merci pour ta réponse, malheureusement ca ne fonctionne pas.
    J’avais déjà essayé quelque chose comme ça mais ça ne le faisait pas

    J’obtiens comme résultat
    $id = 0;
    $Nom = la valeur de l’Id donc soit 206, soit autre chose mais qui correspond bien à la valeur de l’Id

    Alain

  4. #4
    Invité
    Invité(e)
    Par défaut
    On n'est pas voyant.

    Montre ton code "corrigé".

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Pas de souci

    Code modifié
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    <?php
    //====  OUVERTURE DE LA TABLE  t_contacts   
    include("Connexion.php");
    $connect0 = mysqli_connect($hote,$login,$mdp,$bd);
    mysqli_select_db($connect0, $bd) ;
    $result0 = mysqli_query($connect0, "SELECT * FROM t_contacts WHERE Id = '$Id' ");
      while($row = mysqli_fetch_array($result0, MYSQLI_BOTH))
      {
      $Id           = ($row['Id'])          ;
      $Nom          = ($row['Nom'])         ;
      $Prenom       = ($row['Prenom'])      ;
      $Civilite     = ($row['Civilite'])    ;
      } //while  
      mysqli_close($connect0); 	
     
     
     
     //====  OUVERTURE DE LA TABLE  t_contacts   
    include("Connexion.php");
    $connect0 = mysqli_connect($hote,$login,$mdp,$bd);
    mysqli_select_db($connect0, $bd) ;
     
    echo "
    <div align='center'> 
        <form name='RechercherNom' action='Test1.php' method='post' enctype='multipart/form-data'>
    	<table  rules='none' border=2px> 
    	<tr>
          <td width='20%'>Rechercher un contact :</td>
    	  <td><select name='Nom' style='width:19.6em'  value='Chercher' onchange='RechercherNom.submit();' >";
    	 // $Id = ( !empty($_POST['Id']) )? intval($_POST['Id']) : 0;
    	  	echo "<option value=''  selected='selected'></option>"; 
    	    $result0 = mysqli_query($connect0, "SELECT * FROM t_contacts Where Id ORDER BY Nom ASC");
    	    while($row = mysqli_fetch_array($result0, MYSQLI_BOTH))
             { echo "<option value='".$row["Id"]."'>".$row["Nom"].' '.$row["Prenom"]."</option>"; }
    	 $Id = ( !empty($_POST['Id']) )? intval($_POST['Id']) :0;
           echo"</select>
    	 </td>  
       </tr>
       </table>
       </form>
       ";
      mysqli_close($connect0);   
     
    echo $Id."       ".$Civilite." ".$Nom." ".$Prenom."<br>";
    Cdt

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ton code manque de cohérence et de logique.


    1/ Ligne 8, tu as : $Id
    D'où tu se sors ?
    Indice : c'est la ligne 32 qui doit se trouver avant.
    (tu l'as remis ligne 37, où il ne sert strictement à rien !)

    Et le while est inutile, puisque tu ne récupère qu'une seule ligne (id est unique).

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      mysqli_close($connect0); 	
     
     //====  OUVERTURE DE LA TABLE  t_contacts   
    include("Connexion.php");
    $connect0 = mysqli_connect($hote,$login,$mdp,$bd);
    mysqli_select_db($connect0, $bd) ;
    inutile d'ouvrir et fermer la connexion 100 fois dans ton script !
    On ouvre au tout début, on ferme à la fin (une seule fois)

    Et ce serait malin de mettre les 2 dernières lignes (ci-dessus : $connect0 =.......) directement DANS le fichier Connexion.php.


    3/ ligne 34 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	    $result0 = mysqli_query($connect0, "SELECT * FROM t_contacts Where Id ORDER BY Nom ASC");
    Where Id... quoi ? (à enlever)
    Et là, on n'a besoin de récupérer que l'id, le nom et prénom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	    $result0 = mysqli_query($connect0, "SELECT Id, Nom, Prenom FROM t_contacts ORDER BY Nom ASC");
    Dernière modification par Invité ; 13/09/2017 à 12h44.

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

Discussions similaires

  1. [MySQL] Selection ID liste déroulante avec BDD
    Par Jimdrix06 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/02/2014, 10h21
  2. [MySQL] liste déroulante sur bdd récupération d'une valeur
    Par zeon71 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/10/2011, 15h42
  3. [MySQL] Liste déroulante et BDD
    Par Morronight dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/04/2011, 11h51
  4. [MySQL] liste déroulante alimentée par BDD
    Par mitch46000 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/06/2007, 15h14
  5. Liste déroulante imbriquée importée depuis une Bdd
    Par WhyMee dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 07/08/2006, 16h48

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