Liste déroulante Probleme bizarre !!

johandev
Invité n'ayant pas de compte PHPfrance

08 janv. 2007, 12:25

Bonjour, j'avais posté un sujet il n'y a pas tres longtemp concernant une liste déroulante.
J'ai réussi a créer cette liste.
Maintenant je désire mettre une valeur par défaut dans ma liste déroulante, jusque la, pas de probleme, mais je souhaite que cette valeur soit le résultat d'une requete.
Voila mon code :

// connexion déja éffectué.
$defaut_req = 'Select LIBELLE_TYPE_LOG from type_log where CODE_TYPE_LOG = 1';
$defaut = mysql_query($defaut_req) ; 
$def = mysql_fetch_assoc($defaut);


<?
	$ld = "<SELECT NAME='list_Type_Log'>";
	$ld .= "<OPTION VALUE=0>$def</OPTION>";
// On boucle sur la table
while ( $row = mysql_fetch_array( $result)) {
     
    $CODE_TYPE_LOG = $row["CODE_TYPE_LOG"];
    $LIBELLE_TYPE_LOG = $row["LIBELLE_TYPE_LOG"];
    $ld .= "<OPTION VALUE='$CODE_TYPE_LOG'>$LIBELLE_TYPE_LOG</OPTION>";
 }
$ld .= "</SELECT>";

print $ld;
Ce code m'affiche bien la liste déroulante, avec comme valeur par défaut le mot "Array" ! ça me parrait assez bizarre ! Puisque le résultat de ma requete doit normalement etre "New". Et lorsque je fais un echo du résultat de ma requete il me met aussi "Array". alors que dans la base de données il n'y a évidement pas de valeur Array.

Merci de m'aider a résoudre ce probleme qui me parrait assez louche !!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 janv. 2007, 12:32

Array n'est pas une valeur mais un type :)

S'il t'affiche array, c'est parce que tu lui demandes d'afficher quelque chose qui est un tableau, et non pas l'un des éléments de ce tableau. Regarde la documentation de mysql_fetch_assoc() pour voir ce qu'elle te retourne et donc ce que tu stockes dans $def :)

(tu peux également faire un print_r($def); pour voir le contenu de ton tableau :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

johandev
Invité n'ayant pas de compte PHPfrance

08 janv. 2007, 12:52

oui effectivement, je vien de voir ça, j'ai réussi a corriger.

Voila mon code pour ceux que ça interresserai.
$defaut_req = 'Select LIBELLE_TYPE_LOG from type_log where CODE_TYPE_LOG = 1';
$defaut = mysql_query($defaut_req, $VL_CONNEXION) ; 
$def = mysql_fetch_assoc($defaut);
$oki=mysql_result($defaut);

$ld = "<SELECT NAME='list_Type_Log'>";
	$ld .= "<OPTION selected>$oki</OPTION>";
// On boucle sur la table
while ( $row = mysql_fetch_array( $result)) {
     
    $CODE_TYPE_LOG = $row["CODE_TYPE_LOG"];
    $LIBELLE_TYPE_LOG = $row["LIBELLE_TYPE_LOG"];
    $ld .= "<OPTION VALUE='$CODE_TYPE_LOG'>$LIBELLE_TYPE_LOG</OPTION>";
 }
$ld .= "</SELECT>";

print $ld;
Merci de ton aide !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 janv. 2007, 12:56

Y a pas de quoi :)

Par contre....

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 [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...