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 :

choix booléen oui-non [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut choix booléen oui-non
    bonjour

    dans une table param, j'ai 2 enregistrements:
    p_id1=0, p_lib=NON
    p_id1=1, p_lib=OUI

    dans une table adherent, , j'ai un champ ADH_admin, qui contient 0 (non) ou 1 (oui).
    dans le formulaire de mise à jour de cette table, ( j'ai auparavant selecté 1 enreg et récupéré le contenu des champs), j'affiche une liste de choix:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<TD><SELECT NAME="ADH_admin">
    <?php	
    	$p_id1=$_POST["ADH_admin"];																			// param oui/non
    	$sql = "SELECT p_id1, p_lib FROM param  order by p_id1";
    	$rs=mysql_query($sql)or exit(mysql_error() . "<br/>$sql");
    	while($lg=mysql_fetch_array($rs))
    	{
    	  echo '<OPTION VALUE="'.$lg["p_id1"].'">'.$lg["p_id1"].','.$lg["p_lib"].'</OPTION>';
    	}
    ?>	
    	</SELECT></TD>
    si je saisis 1, l'enregistrement se fait bien dans la table ( je l'ai vérifié avec phpmyadmin); mais si je reviens ensuite voir cet enreg, il affiche toujours 0, soit l'ordre donné dans le select.
    comment faire pour afficher la valeur contenue dans l'enreg?

    merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    il faut que tu rajoutes dans le html : selected="selected" à l'enregistrement sélectionné (en l'occurrence celui correspondant à l'id renvoyé par ta base de données)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    merci rawsrc
    mais ou faut-il mette ce selected?

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu dois avoir au final un truc comme ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="ADH_admin">
        <option value="1">Option1</option>
        <option value="2">Option2</option>
        <option value="3" selected="selected">Option3</option>
    </select>

  5. #5
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    je ne comprends pas

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <td>
        <select name="ADH_admin">
        <?php    
            $id  = intval($_POST['ADH_admin']);                                                                            
            $sql = 'SELECT p_id1, p_lib FROM param order by p_id1';
            $rs  = mysql_query($sql) or die(mysql_error()."<br/>$sql");
        ?>
        <?php while($lg = mysql_fetch_assoc($rs)): ?>
            <option value="<?php echo $lg['p_id1'] ?>"<?php echo ($id == $lg['p_id1']) ? ' selected="selected"' : ''; ?>><?php echo $lg['p_lib'] ?></option>
        <?php endwhile ?>
        </select>
    </td>

  7. #7
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    désolé, j'ai appliqué ta méthode, mais le résultat est identiques...
    la liste de choix propose NON ou OUI (toujours dans cet ordre)

    ADH_admin: au départ est à 0 (non)
    je saisis OUI, il met donc 1 dans ADH_admin, je le vérifie dans phpmydmin;
    je sors
    je reviens sur cet enreg: il affiche NON...

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok, mais je pense que tu fais une confusion.
    D'un côté tu as les données pour ta liste (id et libellé) mais de l'autre les données issues de ta base de données elles sont où ?
    Je me suis basé sur ton exemple en le sécurisant avec $id = intval($_POST['ADH_admin']);.
    Tu devrais avoir un autre tableau issu de ta table adherent pour obtenir quelque chose de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <td>
        <select name="ADH_admin">
        <?php    
            $id  = $adherent['choix_option'];   // ici tu as les données concernant l'adhérent   
            $sql = 'SELECT p_id1, p_lib FROM param order by p_id1';
            $rs  = mysql_query($sql) or die(mysql_error()."<br/>$sql");
        ?>
            <?php while($lg = mysql_fetch_array($rs)): ?>
                <option value="<?php echo $lg['p_id1'] ?>"<?php echo ($id == $lg['p_id1']) ? ' selected="selected"' : ''; ?>><?php echo $lg['p_lib'] ?></option>
            <?php endwhile ?>
        </select>
    </td>

  9. #9
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ok tu as saisi ce que je veux faire
    mais e résultat est toujours le même...

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bah oui, il faut que tu sortes les données de ton adhérent de la base de données comme tu le fais pour les valeurs de ta liste d'options.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ben oui c'est ce que je fais pour tous les champs de ma table, au début de ma page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $sql1="select * from adherent where ADH_num=$ADH_num";
    //echo $sql1;
    $mysql_result1=mysql_query($sql1) or  exit(mysql_error() . "<br/>$sql1" ) ;
    $nb_champs1=mysql_num_fields($mysql_result1);
    $champ1=mysql_fetch_row($mysql_result1);
    for ($i1=0;$i1<$nb_champs1;$i1++)
    {
    	$x= "x_".mysql_field_name($mysql_result1,$i1);
    	$$x= stripslashes($champ1[$i1]) ;
    }

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je verrais plus ceci :
    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
     
    // IL FAUT EVITER LES SELECT * ET NOMMER LES COLONNES A LA PLACE
    // LES FONCTIONS mysql_xxx SONT OBSOLÈTES, IL FAUT UTILISER mysqli_xxx ou PDO
     
    $sql = "SELECT * FROM adherent WHERE ADH_num = $ADH_num";
    $qry = mysql_query($sql) or die(mysql_error()."<br/>$sql");
     
    $adherent = mysql_fetch_assoc($qry);
    if (empty($adherent)) {
        echo 'Adhérent non trouvé';
        exit;
    }
    ?>
    <td>
        <select name="ADH_admin">
        <?php    
            $id  = $adherent['choix_option']; // ici tu mets le nom de la colonne qui va bien                                                                            
            $sql = 'SELECT p_id1, p_lib FROM param order by p_id1';
            $rs  = mysql_query($sql) or die(mysql_error()."<br/>$sql");
        ?>
            <?php while($lg = mysql_fetch_array($rs)): ?>
                <option value="<?php echo $lg['p_id1'] ?>"<?php echo ($id == $lg['p_id1']) ? ' selected="selected"' : ''; ?>><?php echo $lg['p_lib'] ?></option>
            <?php endwhile ?>
        </select>
    </td>

  13. #13
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    non, toujours le même resultat...
    bon, j'arrete pour ce soir

    merci beaucoup pour ton aide

  14. #14
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Poste ton script dans son intégralité stp

  15. #15
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    bonjour
    la nuit porte conseil , j'ai changé la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                <TD>
    <?php																	// param oui/non	
    	$query = "SELECT p_id1, p_lib FROM param WHERE p_id0='1' ORDER by p_id1 ";
    	$result=mysql_query($query)  or exit(mysql_error() . "<br/>$sql")  ;
    	echo "<SELECT NAME=\"ADH_admin\" size=\"1\">\n";
    	echo "<OPTION SELECTED > $x_ADH_admin</OPTION>";
        construire_select_box($result) ;
    	echo "</SELECT>" ;
    ?>	
    	  </TD>
    et ma fonction ( que j'avais en stock)
    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
     
    function construire_select_box($result,$largeur_max=35)
    {
        $ligne=mysql_num_rows($result);
        $colonne=mysql_num_fields($result);
         for ($sb_i=0; $sb_i<$ligne; $sb_i++)
               {
                echo '<OPTION VALUE="'.mysql_result($result,$sb_i,0).'" >';
                $x="";
                for ($sb_j=0; $sb_j<$colonne-1; $sb_j++)
                      {
                      $x.=" ".mysql_result($result,$sb_i,$sb_j);
                      }
                $x=substr($x,1,$largeur_max)."...";
                print ("$x </OPTION>\n");
                }
    }
    et voila, ca marche..
    merci beaucoup rawsrc pour ton aide
    a+

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

Discussions similaires

  1. [AC-2007] Champ booléen (oui/non) et liste déroulante
    Par Olivia84 dans le forum IHM
    Réponses: 12
    Dernier message: 27/07/2012, 08h03
  2. Macro - Choix oui/non avant executer macro
    Par psykbe dans le forum IHM
    Réponses: 4
    Dernier message: 06/10/2007, 20h46
  3. fonction alert(); avec choix oui/non
    Par Emcy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/08/2007, 08h35
  4. afficher boite de dialogue avec choix oui/non
    Par arnogef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/12/2006, 12h06
  5. Obtenir un triple choix oui, non, oui et non
    Par ivan7 dans le forum Access
    Réponses: 21
    Dernier message: 10/02/2006, 13h44

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