Page 1 sur 1

Probléme de contenu d'une liste modifiable

Posté : 24 juil. 2007, 11:44
par cyberneo
Bonjour a tous,
J'ai creer une liste qui doit chercher son contenu dans une table mais cela bloque et le contenu de la liste reste vierge.
<?php

     $sql = "select * from service";
     $res=mysql_query($sql);

     echo "<select name=service>" ;
     while($val=mysql_fetch_row($res))
         {
          //echo "<option value ".$val[1]."></option>";
         echo $val[1];
         }
      echo "</select>";
     ?>
Quand je test ce code en dehors de la liste cela fonctionne trés bien et m'affiche le resultat espéré.

Question: Est-il possible comme sur access de rechercher ses donnée dans une table prendre par exemple 2 colonne (Num_cle; nom) afficher le nom dans le contenu de la liste et lorsque l'utilisateur selectionne le nom reste afficher dans le champ a l'ecran, mais que l'orsqu'il appui sur valider et envoyer les données cela retourne le numéro de la clé primaire? si oui commen faut'il si prendre merci par avance....

Posté : 24 juil. 2007, 11:56
par Genova
$res=mysql_query($sql) OR die(mysql_error()); 
d'une part : apprendre à vérifier ses retours d'erreur est la base du débugage.

Ensuite test la requête sous PHPMyAdmin.

Et ensuite ton HTML de création de liste est totalement faux, je te renvoie à une documentation sur la création de listes en HTML (cf google).

Posté : 24 juil. 2007, 11:57
par sylk
Moi je fait ça comme ça d'habitude.
$query = "SELECT id, prenom FROM service";
$list_values = mysql_query($query, $ConnDb) or die(mysql_error());
$row_list_values = mysql_fetch_assoc($list_values); 

echo "<select name=service>" ; 

do { 
      echo "<option value=\"".$row_list_values['id']."\">".$row_list_values['nom']."</option>";

} while ($row_list_values = mysql_fetch_assoc($list_values)); 

echo "</select>"; 

- En fait il ne va rien s'affiche dans ton select, car tu n'as aucune valeur dans la balise option, elle est vide.

- Normalement on spécifie les noms des champs que l'on veut selectionner dans le "SELECT" et on n'utilise pas le *.

Ciao

Sylk

Posté : 24 juil. 2007, 12:22
par Ryle
Juste une remarque par rapport au code de Sylk, il est je pense préférable d'utiliser un simple while() plutôt qu'un do/while (si chere à dreamweaver). En effet, si la requête ne retourne aucun résultat, le while sera ignoré, alors que le do/while sera quand même exécuté une fois.

Cela évite donc les erreurs et la redondance de la ligne de code du fetch_assoc
$query = "SELECT id, prenom FROM service"; 
$list_values = mysql_query($query, $ConnDb) or die(mysql_error()); 

echo '<select name="service">';  
while ($row_list_values = mysql_fetch_assoc($list_values)) {  
      echo '<option value="'.$row_list_values['id'].'">'.$row_list_values['nom'].'</option>'; 
} 
echo '</select>';
Par ailleurs, le fait de délimiter les chaines avec des apostrophes permet de ne pas avoir à protéger les nombreuses guillemets d'un code html (cela oblige en revanche à sortir les variables des chaines, mais c'est franchement pas un mal :))

merci

Posté : 24 juil. 2007, 13:26
par cyberneo
Merci pour votre aide trés reactive et trés pertinante...
encore une foix je vous renvoi un grand merci ^^ ... MERCI :D

....

Posté : 24 juil. 2007, 13:27
par cyberneo
Je suis ici en invité j'ai des souci pour creer un compte.. je ne trouve pas le tag résolu... escusez moi par avance ^^

Posté : 24 juil. 2007, 13:41
par zeus
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)