problème de variable

Eléphant du PHP | 288 Messages

12 sept. 2008, 07:56

Bonjour,

Je vais essayer d'expliquer mon problème le plus clairement possible.
J'utilise mysqli. J'ai une requete genre:

Code : Tout sélectionner

SELECT nom,prenom FROM presonel
je fais un bind result genre:
 $stmt->bind_param($nom, $prenom);
Maintenant admettons que j'ai un fichier qui est de cette forme
array('SELECT nom,prenom FROM presonel','$nom, $prenom');
Quand je lis cette ligne du fichier, je met la requete dans une variable et les parametres qui vont aller dans le bind. Alors j'ai deux variables $requetes, $bind, et si j'affiche $bind j'obtient $nom,$prenom. Mon probleme est que que peux pas faire ceci.
$stmt->bind_param($bind);
parceque c'est comme si j'avais mis qu' un seul parametre ce que je voudrais c'est que ca soit le contenu de $bind qui aille dans la fonction.

Comment puis je faire ca. Esperant que j'ai ete clair

Merci d'avance

Eléphanteau du PHP | 17 Messages

12 sept. 2008, 09:35

essaye
array('SELECT nom,prenom FROM presonel',"$nom, $prenom"); 
Ou mieux
array('SELECT nom,prenom FROM presonel',$nom.', '.$prenom); 
si tu veut un tableau a deux cellules

pour trois cellules fait :
array('SELECT nom,prenom FROM presonel',$nom, $prenom); 

enfin si j'ai bien compris ton problème

Eléphant du PHP | 288 Messages

12 sept. 2008, 16:18

Merci de ta reponse,

essaye
array('SELECT nom,prenom FROM presonel',"$nom, $prenom");
Dans ce cas, quand je vais lire la ligne ,$bind contiendra
 , 
Juste une virgule, parce que $nom et $prenom seront interprétés. Même chose pour ton deuxième exemple. Ce que je veux c'est je lis du fichier $nom et $prenom dans une variable disons $bind, et quand je fais
$stmt->bind_param($bind); 
il faudrait ça soit interprété comme
$stmt->bind_param($nom, $prenom);
puisque $bind contien $nom et $prenom. En fait que j'aimerai qu'il contienne, parce que à vrai dire $bind contient juste une virgule comme je l'ai dit auparavant. Mais de tout façon la fonction elle prend $bind comme un seul paramètre alors qu'elle attends 2 parametres. Espérant être plus clair

Merci d'avance


[EDIT] J'ai trouve la solution. Pas tres jolie mais ca marche. Premierement j'ai change la structure de mon tableau dans le fichier il ressemble a ca maintenant.
array("SELECT nom,prenom FROM presonel",array("nom","prenom"));
Ensuite une fois lu j'ai dans $bind un tableau de longueur 2 contenant nom et prenom. Je suis construit une string de cette maniere a pouvoir utiliser un eval.
for($i=0;$i<count($bind);$i++)
			{
				$t = $bind[$i];
				$function .= '$'.$t.',';//construit la variable a la main
			}
			$function = substr($function,0,strrpos($function,","));
			$function .= ');'; 
			echo $function;
			
			eval($function);