8797 sujets

Développement web côté serveur, CMS

Bonjour,

pour être simple je me casse la tête à vouloir lier un select à une base de données. Base de données qui est constituée d'une colonne nommée "initiales".

J'arrive bien a écrire dans ma bdd, mais je n'arrive pas à ressortir les éléments avec mon select.

Voici mon code du select:
	
echo "<select name='affiche initiales'>";
	if(isset($_POST["initiales"])){
	include("log_mysql.php");
		$result = mysql_query("SELECT initiales FROM exp_tbl");
		while($affiche = mysql_fetch_array($result)){
echo "<option value='".$affiche["initiales"]."'>".$affiche["initiales"]."</option>";
		}
	}
	echo "</select>";


Merci d'avance...
Modifié par kilian67320 (05 Jun 2012 - 19:36)
Yo !

Oui florian, mais ça ne change rien... array retourne et une clé numérique et le nom du champs...

En fait il faudrait que tu débugge tes variables...

Ton code est parfaitement correct...

Donc soit ton isset retourne false...

soit ton result est vide (voir la connexion)
J'ai enfin trouvé la solution Smiley biggrin


<? include("log_mysql.php");
$SQL = "SELECT initiales FROM chef_projet_tbl";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["initiales"]."</option>\n";}?>
Par contre, j'arrive pas à récuperer la valeur du select initialement choisie.

Pour les autres select j'ai le code suivant, mais comme ici ma liste est liée a une bdd... Smiley decu :
<option value="Maritime" <?php if (isset($affiche['mode_transport']) && $affiche['mode_transport']=="Maritime") echo 'selected="selected"';?>>Maritime</option>


Merci Smiley biggrin
Modifié par kilian67320 (04 Jun 2012 - 12:12)
Salut, voilà une idée de solution :


<?php

//Déclarations
include("log_mysql.php");
$SQL = "SELECT initiales FROM chef_projet_tbl";
$options = array();
$i = 0;

//Récupération du code à insérer dans le menu déroulant
$res = mysql_query($SQL);
while($val= mysql_fetch_array($res)) {
    $options[$i] = "<option value=\"".$val["initiales"]."\" ";
    if(isset($_POST['affiche']) && $res['initiales'] == $_POST['affiche']){
        //On ne rentre là que si le formulaire est validé, et que la valeur
        //choisie est la même que l'enregistrement récupéré
        $options[$i] .= "selected='selected'";
    }
    $options[$i] .= " >" . $val['initiales'] . "</option>\n";
    $i++;
}

//Affichage
echo "<form method='post' action='...' >";
echo "<select name='affiche'>";
$size = sizeof($options);
for($i = 0 ; $i < $size ; $i++){
    echo $options[$i];
}
echo "</select>";
echo "</form>";

?>

Modifié par Zed13 (06 Jun 2012 - 10:30)
Zed13 a écrit :
Salut, voilà une idée de solution :


&lt;?php

//Déclarations
include(&quot;log_mysql.php&quot;);
$SQL = &quot;SELECT initiales FROM chef_projet_tbl&quot;;
$options = array();
$i = 0;

//Récupération du code à insérer dans le menu déroulant
$res = mysql_query($SQL);
while($val= mysql_fetch_array($res)) {
    $options[$i] = &quot;&lt;option value=\&quot;&quot;.$val[&quot;initiales&quot;].&quot;\&quot; &quot;;
    if(isset($_POST['affiche']) &amp;&amp; $res['initiales'] == $_POST['affiche']){
        //On ne rentre là que si le formulaire est validé, et que la valeur
        //choisie est la même que l'enregistrement récupéré
        $options[$i] .= &quot;selected='selected'&quot;;
    }
    $options[$i] .= &quot; &gt;&quot; . $val['initiales'] . &quot;&lt;/option&gt;\n&quot;;
    $i++;
}

//Affichage
echo &quot;&lt;form method='post' action='...' &gt;&quot;;
echo &quot;&lt;select name='affiche'&gt;&quot;;
$size = sizeof($options);
for($i = 0 ; $i &lt; $size ; $i++){
    echo $options[$i];
}
echo &quot;&lt;/select&gt;&quot;;
echo &quot;&lt;/form&gt;&quot;;

?&gt;


Merci pour ta contribution, je vais essayer Smiley biggrin
Malheureusement je n'arrive pas à l'adpter. Les "initiales" s'affichent mais en dehors du select, alors que le select reste vide.