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 a partir d'une table


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Points : 111
    Points
    111
    Par défaut Liste déroulante a partir d'une table
    Bonjour,

    J'aimerais récupérer le champ "dip_code" de la table "diplome" et créer un <option> pour chaque élément de la table.

    Mon code m'affiche une erreur de requete :

    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
     
    <?php
    $connex = mysql_connect ("localhost", "root","") or die ("erreur de connexion");
    mysql_select_db ("controle_qualite");
     
    $req2 = "select dip_num, dip_code from diplome, dossier where dossier.dip_num= diplome.dip_num";
    $res2 = mysql_query($req2) or die ("Erreur requête 2");
    ?>
     
     
    <body>
     
    <form action="" method="POST">
    <u><strong>Diplome</strong></u><br><br>
    	<select>
    	<?php
    while ($tab = mysql_fetch_array($res2))
    {
    echo "<option value=\"".$tab['dip_num'][$i]."\">".$tab['dip_num'][$i]."</option>";
    	}
    ?>	
    	</select>
    	</p>
    </form>

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut,

    Pourquoi tu utilises cette variable $i ?? Tu ne l'initialises pas et tu l'incrémente pas... Sans cette variable ça devrais fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value=\"".$tab['dip_num']."\">".$tab['dip_num']."</option>";
    Si ça ne marche pas poste nous ton erreur de requête ça peut toujours aider ...

  3. #3
    Membre du Club Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par razorlok Voir le message
    Bonjour,

    J'aimerais récupérer le champ "dip_code" de la table "diplome" et créer un <option> pour chaque élément de la table.

    Mon code m'affiche une erreur de requete :

    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
     
    <?php
    $connex = mysql_connect ("localhost", "root","") or die ("erreur de connexion");
    mysql_select_db ("controle_qualite");
     
    $req2 = "select dip_num, dip_code from diplome, dossier where dossier.dip_num= diplome.dip_num";
    $res2 = mysql_query($req2) or die ("Erreur requête 2");
    ?>
     
     
    <body>
     
    <form action="" method="POST">
    <u><strong>Diplome</strong></u><br><br>
    	<select>
    	<?php
    while ($tab = mysql_fetch_array($res2))
    {
    echo "<option value=\"".$tab['dip_num'][$i]."\">".$tab['dip_num'][$i]."</option>";
     
     
    }
    ?>	
    	</select>
    	</p>
    </form>
    la variable $i n'est pas nécéssaire , vue que la table sera parcouru avec le while et afficher tout tes code diplome.

    éssai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<option value=\"'.$tab['dip_num'].'\">'.$tab['dip_num'].'</option>';
    peut etre un problème de quotes

  4. #4
    Membre régulier Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Points : 111
    Points
    111
    Par défaut
    J'avais oublié de retirer l$i issu du test avec un For.

    J'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="" method="POST">
    <u><strong>Diplome</strong></u><br><br>
    	<select>
    	<?php
    while ($tab = mysql_fetch_array($res2))
    {
    echo '<option value=\"'.$tab['dip_num'].'\">'.$tab['dip_num'].'</option>';
    	}
    ?>	
    	</select>
    	</p>
    </form>
    Mais toujours "Erreur requete 2"

  5. #5
    Membre du Club Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 53
    Points
    53
    Par défaut
    peux tu me donner la structure des deux tables ?

  6. #6
    Membre régulier Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Points : 111
    Points
    111
    Par défaut
    Diplome (dip_num, dip_code)
    Dossier (dos_num, dip_num# et 37 autres champs)

  7. #7
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Essaye de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res2 = mysql_query($req2) or die(mysql_error());
    Et post nous le message d'erreur.

  8. #8
    Membre du Club Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par razorlok Voir le message
    Diplome (dip_num, dip_code)
    Dossier (dos_num, dip_num# et 37 autres champs)
    pour la table dossier vaut mieux utiliser : fk_dip_num comme clé étrangère pour qu'il n 'y est pas de confusion , du moins pour la solution que je te propose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Diplome (dip_num, dip_code)
    Dossier (dos_num, fk_dip_num# et 37 autres champs)
    je te propose cette solution sans utiliser de jointures entre les deux tables :

    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
    <tr>
                      <td >Diplome* : </td>
    				   <?php
    				   $result =paramètres connexion BD;
    if (!$result)
       die(mysql_error());
     
         // selection de la base de données 
    $select  = mysql_select_db($dbName,$result);
       if (!$select)
       die(mysql_error());
                      ?>
    				   <? $Result= mysql_query("Select * from Diplome") or die(mysql_error());
     
     
                 $ListDir = '<option value="0">Tous les diplomes</option>'; 
    while ($tmpObject = mysql_fetch_object($Result)) //tant qu'il y a des diplomes, on les affiche
    {
       $ListDir .= '<option value="'.$tmpObject->dip_num .'">'.$tmpObject->dip_num .'</option>';
    }
    ?>
    				  <td colspan="5">
                          <select name="fk_dip_num" id="fk_dip_num">
                     <?=$ListDir?>
                       </select>				  </td>
    				  </tr>
    j'utilise le type InnoDB pour mieux gérer les clés étrangères, si tu utilises un script pour créer tes tables , la table référencée( dans ton cas c'est la table diplome) doit etre créee avant la table qui contient la référence (table dossier)

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/03/2014, 10h15
  2. Réponses: 1
    Dernier message: 02/05/2013, 20h19
  3. liste deroulante chargée à partir d'une table
    Par Lam Ibou dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 30/04/2010, 16h09
  4. Réponses: 1
    Dernier message: 15/02/2010, 11h54
  5. Réponses: 12
    Dernier message: 28/11/2006, 15h34

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