8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je ne réussis pas à initialer mon select; Je veux qu'il affiche avec la variable $ch_type.

<select name="type">
<option></option>
<?php
  $ch_type="Assistant";
	require("../../config.inc.php");
	mysql_select_db("ATS"); 
	$sql_array = "SELECT * FROM TB_statut order by description";
	$result = mysql_query($sql_array);
	$rows = mysql_num_rows($result);

	if(isset($rows))
	{  
		while($data = mysql_fetch_array($result))			   {
			$selected="";
      if ($data["description"]==$activite_selected){
				echo $ch_type;
      	$selected=" selected=\"selected\"";
       }
       echo "<option value=\"".$data["description"]."\"".$selected.">".$data["description"]."</option>\n";
	   }
	}
?>
</select>
Salut,

mmmh, c'est un peu le chaos dans ton code, là Smiley smile

Il faut remettre les choses dans le bon ordre Smiley cligne
<?php
   $ch_dir = 'Assistant' ;
   # Connexion à la BDD
   ...
   $result = mysql_query("SELECT * FROM $tb_statut ORDER BY description") ;
   mysql_close() ;
   if (mysql_num_rows($result) > 0) {
      echo '<select name="type">' ;
      while ($data = mysql_fetch_array($result)) {
         echo '<option value="' ;
         echo $data['description'] ;
         echo '"' ;
         if ($data['description'] == $ch_type) echo ' selected="selected"' ;
         echo '>' ;
         echo $data['description'] ;
         echo '</option>' ;
      }
      echo '</select>' ;
   }
?>   

Remarque, si tu n'as besoin que du champ "description" de la table, autant ne sélectionner que celui-là en modifiant la requête :
$result = mysql_query("SELECT description FROM $tb_statut ORDER BY description") ;
j'ai cette erreur:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/ats3r.org/httpdocs/script/membres/test.php on line 100
j'ai enlevé le $tb_statut dans la query et le choix ne s'Affiche pas.

<?php

$ch_type = 'Assistant' ;
require("../../config.inc.php");
mysql_select_db("ATS");
$result = mysql_query("SELECT * FROM TB_statut ORDER BY description") ;
mysql_close() ;
if (mysql_num_rows($result) > 0) {
echo '<select name="type">' ;
while ($data = mysql_fetch_array($result)) {
echo '<option value="' ;
echo $data['description'] ;
echo '"' ;
if ($data['description'] == $ch_type) echo ' selected="selected"' ;
echo '>' ;
echo $data['description'] ;
echo '</option>' ;
}
echo '</select>' ;
}
?>
Hello,

je ne sais pas comment tu te connectes à la base de données, mais il doit manquer quelque chose. Tu devrais avoir quelque part :
$link = mysql_connect("server", "user", "passwd");
mysql_select_db("db_name", $link);

Je ne vois pas à quoi correspond l'argument "ATS" dans ta fonction mysql_select_db ...

$tb_statut est une variable, à remplacer par le nom de la table (ou à laquelle tu peux affecter le nom de la table) qui t'intéresse.

D'autre part, s'il n'y a rien dans la table TB_statut, le code tel qu'il est écrit pour le moment n'affichera rien, à cause de
if (mysql_num_rows($result) > 0)
Bonjour,

Le branchement se fait via le require; tout est ok sur ce point.

La liste déroulante se remplit bien; tout est ok là aussi!

Le hic, comment faire en sorte que le choix affciher au départ soit la variable $ch_type (ce choix provindra éventuellement d'une table)

Merci!

<?php

  $ch_type = 'Assistant' ;
 	require("../../config.inc.php");
	mysql_select_db("ATS"); 
  $result = mysql_query("SELECT * FROM TB_statut ORDER BY description") ;
  mysql_close() ;
  if (mysql_num_rows($result) > 0) {
      echo '<select name="type">' ;
      while ($data = mysql_fetch_array($result)) {
         echo '<option value="' ;
         echo $data['description'] ;
         echo '"' ;
         if ($data['description'] == $ch_type) echo ' selected="selected"' ;
         echo '>' ;
         echo $data['description'] ;
         echo '</option>' ;
      }
      echo '</select>' ;
   }
?>
a écrit :
comment faire en sorte que le choix affciher au départ soit la variable $ch_type
En principe, ça devrait déjà fonctionner. S'il y a dans les résultats fournis par la base de données une description égale à 'Assistant' (puisque c'est la valeur affectée pour l'instant à $ch_type), le script écrit 'selected="selected"' pour l'option concernée, grâce à la condition
 if ($data['description'] == $ch_type) echo ' selected="selected"' ;
Evidemment, il faut qu'il y ait une valeur correspondant à $ch_type dans la liste des résultats. Et attention à la casse, aux espaces qui traînent, etc.

Le code de la liste déroulante générée par le script serait intéressant, si tu ne trouves pas le problème.

Bon courage Smiley cligne