Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/01/2013, 15h10   #1
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
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 :
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
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 15h12   #2
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
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)
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 17h40   #3
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
merci rawsrc
mais ou faut-il mette ce selected?
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 17h44   #4
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
Tu dois avoir au final un truc comme ça :
Code html :
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>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 18h19   #5
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
je ne comprends pas
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 18h31   #6
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
comme ça :
Code :
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>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 18h45   #7
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
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...
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 18h56   #8
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
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 :
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>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 19h15   #9
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
ok tu as saisi ce que je veux faire
mais e résultat est toujours le même...
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 19h16   #10
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
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.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 19h23   #11
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

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

Code :
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]) ;
}
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 19h36   #12
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
Je verrais plus ceci :
Code :
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>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 19h59   #13
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
non, toujours le même resultat...
bon, j'arrete pour ce soir

merci beaucoup pour ton aide
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 21h36   #14
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 601
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 601
Points : 6 132
Points : 6 132
Envoyer un message via Skype™ à rawsrc
Poste ton script dans son intégralité stp
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 13h21   #15
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

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

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
bonjour
la nuit porte conseil , j'ai changé la méthode:
Code :
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 :
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+
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web