Probleme php / while+liste deroulante
KaTaNaSTYLE26
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
KaTaNaSTYLE26 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
KaTaNaSTYLE26 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comme la dernière fois, je suis toujours sur le site qui est le sujet de mon stage
Je bloque actuellement sur une boucle php while, qui dois normalement m'alimenter une zone de liste déroulante
J'utilise quasiment la même requête pour récupérer les infos dans la base de données, qui marche pour afficher les résultats dans un tableau, or quand je l'utilise pour ma zone de liste déroulante, le seul résultat qui sort de cette requête est "ARRAY"
Voici le code de ma page
Pouvais vous m'aider a afficher autre chose que "Array" dans mes résultats?
Bye
Comme la dernière fois, je suis toujours sur le site qui est le sujet de mon stage
Je bloque actuellement sur une boucle php while, qui dois normalement m'alimenter une zone de liste déroulante
J'utilise quasiment la même requête pour récupérer les infos dans la base de données, qui marche pour afficher les résultats dans un tableau, or quand je l'utilise pour ma zone de liste déroulante, le seul résultat qui sort de cette requête est "ARRAY"
Voici le code de ma page
<div id="messagerie_lecture"> <div id="corps_message"> <form action="accueil.php?page=envoi_mess" method="post"> <br> Destinataire: <select name="ident"> <option value="">Veuillez choisir parmis vos amis <?php $sql= "SELECT code_eleve1, code_eleve2, ok_ami FROM ami WHERE code_eleve1 =".$_SESSION['code_eleve']." and ok_ami='T'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_array($req)) { $id_eleve=$data['code_eleve2']; $nom= mysql_query("SELECT nom_eleve from eleve where code_eleve =".$id_eleve); $res_nom= mysql_fetch_array($nom); $prenom= mysql_query("SELECT prenom_eleve from eleve where code_eleve=".$id_eleve); $res_prenom= mysql_fetch_array($prenom); //$photo=mysql_query("SELECT photo_profil_eleve from eleve where code_eleve =".$data['code_eleve2']); //$res_photo = mysql_fetch_array($photo); echo '<option value="'.$data['code_eleve2'].'">'.$res_nom.' '.$res_prenom; } ?> </select> <br><br> Titre (max 50 caracteres) :<br><br> <TEXTAREA name="titre_message" rows=1 cols=53>Veuillez saisir votre titre...</textarea> <br><br> Corps (max 10000 caracteres) :<br><br> <TEXTAREA name="corps_message" rows=10 cols=53>Veuillez saisir votre texte...</TEXTAREA> <br><br><br><input type="submit" value="Envoyer" /> </form> </div> <div id="corps_message"> <br> </div> </div>
Pouvais vous m'aider a afficher autre chose que "Array" dans mes résultats?
Bye
A voir également:
- Probleme php / while+liste deroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
2 réponses
Bonjour
Comme son nom l'indique, mysql_fetch_array te rend un array (tableau)
Donc quand tu fais
Ça t'affiche array... rien d'étonnant.
Il faut afficher l'élément contenu dans cet array : $res_nom['nom_eleve']. L'indice à utiliser est celui du champ extrait dans ta requête SELECT
D'ailleurs, c'est ce que tu fais déjà plus haut (même si ce n'est pas pour un affichage) :
De plus, faire deux requêtes distinctes, une pour le nom et une pour le prénom est un gaspillage énorme ! Autant faire directement :
Comme son nom l'indique, mysql_fetch_array te rend un array (tableau)
Donc quand tu fais
$res_nom= mysql_fetch_array($nom); echo $res_nom;
Ça t'affiche array... rien d'étonnant.
Il faut afficher l'élément contenu dans cet array : $res_nom['nom_eleve']. L'indice à utiliser est celui du champ extrait dans ta requête SELECT
D'ailleurs, c'est ce que tu fais déjà plus haut (même si ce n'est pas pour un affichage) :
$data = mysql_fetch_array($req) $id_eleve=$data['code_eleve2'];tu utilises un élément de l'array $data, pas $data lui-même
De plus, faire deux requêtes distinctes, une pour le nom et une pour le prénom est un gaspillage énorme ! Autant faire directement :
$nom= mysql_query("SELECT nom_eleve, prenom_eleve from eleve where code_eleve =".$id_eleve); $x=mysql_fetch_array($nom); $nom=$x['nom_eleve']; $prenom=$x['prenom_eleve']; ...