Probleme php / while+liste deroulante

Fermé
KaTaNaSTYLE26 Messages postés 23 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 février 2010 - 21 janv. 2010 à 08:42
KaTaNaSTYLE26 Messages postés 23 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 février 2010 - 21 janv. 2010 à 10:23
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


<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:

2 réponses

Bonjour

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'];
...
0
KaTaNaSTYLE26 Messages postés 23 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 février 2010 1
21 janv. 2010 à 10:23
effectivement, il n'y avais rien d'etonnant que mon resultat affiche ARRAY, je viens de comprendre mon erreur, et dans une autre page j'avais compris comment ça marché, et la non...
Abruti que je suis ^^


merci pour ta reponse rapide ;)

je vais pouvoir continuer dans mon travail =)

Bonne journée
0