Fonction php qui retourne un tableau

Ygalr22 -  
 lincoln -
Bonjour à tous, voila j'espere que cette question n'as pas été posée mainte et mainte fois, j'ai cherché sur les forums et je n'ais pas trouvé de reponses me convenant donc j'ai décidé de poster ici...

Je developpe une petite application de gestion de carburants et j'aimerais que les carburants de ma table s'affichent dans une liste de selection...

J'ai une fonction php qui est censsée me retourner un tableau de chaines mais le probeme est que j'ai l'impression q'uil ne me retourne que la premiere chaine du tableau le reste passe à la trape... Quelqu'un peut-il m'aider svp.

Voici un bout de mon code:

==================Page de fonction php===================
function ListCarbu(){
$pointeur=connexion();//appel de la fonction connexion

$req="SELECT Carburants.Carb_Lib
FROM Carburants";

//on envoie la requette à la fonction 'requette'
$reponse = requette($req, $pointeur);//appel de la fonction requette avec en parametre le pointeur et la requette

// variables où l'on stock le nombre de lignes ainsi que le nombre de champs du resultat de la requette
$nb_ligne=mysql_num_rows($reponse);
$nb_champ=mysql_num_fields($reponse);

//on mets les résultats dans un tableau TabCarb
$cpt=0;
while ($ligne = Mysql_fetch_row ($reponse)){
$TabCarb[$cpt]=$ligne[0];
$cpt++;
}

return $TabCarb;//on retourne le tableau (c'est là ou ca ne marche plus!)
}

==========Page php où mon tableau doit normalement s'afficher=======

//appel de la fonction qui doit me retourner le tableau de carburants
$TabCarb=ListCarbu();


//affichage des carburants dans une liste de choix
<label width='250'>Type de carburants du Véhicule: </label>
<menulist label='carbu_vehi'>
<menupopup>";
//ajout dinamique d'items dans laliste//
for ($i=0; $i<=$nb_ligne-1; $i++){
if($TabCarb[$i]!=$TabRep[3]){
echo( "<menuitem label='".$TabCarb[$i]."'/>");
}else{
echo( "<menuitem label='".$TabCarb[$i]."' selected='true'/>");
}
}
echo "</menupopup>
</menulist>
A voir également:

3 réponses

Alain42
 
Bonsoir,

Essayes comme ça:

J'ai fait avec un formulaire classique , je pense que toi tu veux envoyer par xml.

<?php
function ListCarbu(){
	$pointeur=connexion();//appel de la fonction connexion
	$req="SELECT Carburants.Carb_Lib FROM Carburants";
	//on envoie la requette à la fonction 'requette'
	$reponse = requette($req, $pointeur);//appel de la fonction requette avec en parametre le pointeur et la requette

	// variables où l'on stock le nombre de lignes ainsi que le nombre de champs du resultat de la requette
	//$nb_ligne=mysql_num_rows($reponse); // ne sert a rien ces variables "restent dans la fonction
	//$nb_champ=mysql_num_fields($reponse);// ne sert a rien ces variables "restent dans la fonction

	//on empile  les résultats dans un tableau TabCarb
	$TabCarb=array();
	while ($ligne = mysql_fetch_array ($reponse)){ //attention pas de majuscule a Mysql_....
		$TabCarb[]=$ligne['Carb_Lib']; // avec fetch_array on accede directement au nom de champ ['......']
	}
return $TabCarb;//on retourne le tableau 
}
//appel de la fonction qui doit me retourner le tableau de carburants
$TabCarb=ListCarbu();

//affichage des carburants dans une liste de choix
echo "<form name='.....' method='post' action='.....'>
	<label width='250'>Type de carburants du Véhicule: </label
	<select name='....'>";


//ajout dynamique d'items dans la liste//
	for ($i=0; $i<sizeof($TabCarb); $i++){
			echo "<option value='$TabCarb[$i]'>$TabCarb[$i]</option>";
	}
echo "</select>";
echo "</form>";
?>
8
lincoln
 
Salut,

boh d'accord ce message est un peu vieux, mais on sait jamais si tu retombe sur ce message un jour !!!

Je ne m'y connais pas trop... mais j'ai la vague impression que dans ton tableau tu mets tout le temps la même valeur... et je pense que c'est pour sa que tu dis:

"j'ai l'impression q'uil ne me retourne que la premiere chaine du tableau le reste passe à la trape..."


enfin c'est ptetre pas ça mais je penses qu'il y a un probleme ici:

//on mets les résultats dans un tableau TabCarb
$cpt=0;
while ($ligne = Mysql_fetch_row ($reponse)){
$TabCarb[$cpt]=$ligne[0]; // tu mets toujours la première ligne de ton résultat dans toutes
les cases de ton TabCarb[]...
$cpt++;
}

Enfin.. jdis ça jdis rien... :) ... enfin bref... fais comme dit Alain sa à l'air bonnnnnnn

bon courage !!!
4
jaguie
 
idem, personne n'a une explication?
3