Utilisation d'un nom de variable qui varie dans une boucle [PHP] - PHP - Programmation
Marsh Posté le 22-04-2006 à 11:52:15
Utilise un tableau, c'est fait pour ça.
Marsh Posté le 22-04-2006 à 11:53:19
rien compris à ce que tu voulais faire, mais déjà je pense que c'est pas du tout optimisé et que tu dois pouvoir faire autre chose.
le mysql_fetch_array ca pourait te servir.
++
Marsh Posté le 22-04-2006 à 11:59:42
en gros je voudrais éviter ça grace à la boucle for :
Code :
|
Le but étant de faire varier le nom des variables : mais si on fait ça les requête ne fonctionne plus.
Marsh Posté le 22-04-2006 à 12:00:14
newneo2001 a écrit : rien compris à ce que tu voulais faire, mais déjà je pense que c'est pas du tout optimisé et que tu dois pouvoir faire autre chose. |
Je vais regardé, merci
Marsh Posté le 22-04-2006 à 14:37:52
Ca marche forcément avec un tableau mais ça ne répond pas à ma question (je suis sur pourtant que ça doit être possible).
En gros je ré-explique ce que je souhaite.
J'ai $j la variable qui va passer de 1 à 10 dans une boucle FOR
Je veux utiliser dans cette boucle une variable $V1 à $V10.
Je veux utiliser $V1 quand $j=1, $V2 quand $j=2, etc.
Je voulais écrire "$V".$j pour construire ma variable $V1 par exemple mais cela ne marche pas : il doit bien y avoir une solution ?
Marsh Posté le 22-04-2006 à 14:58:07
Et pourquoi tu utiliserais pas une variable $j[1] à $j[10] ? Ca marchera de la même façon en bcp plus propre...
PS. Oui c'est possible de concaténer des chaines pour en faire un nom de variable mais c'est une très mauvais pratique en général...
Marsh Posté le 22-04-2006 à 17:10:35
Pour donner un nom dynamique à une varible faut utiliser des { }, soit dans ton cas : ${"variable".$j}
Marsh Posté le 22-04-2006 à 20:02:04
Merci beaucoup : ça va simplifier largement le code de mon application
Marsh Posté le 22-04-2006 à 20:08:52
Neraud a écrit : Pour donner un nom dynamique à une varible faut utiliser des { }, soit dans ton cas : ${"variable".$j} |
Testé : ça marche impec !
Marsh Posté le 22-04-2006 à 20:09:54
gooopil a écrit : Et pourquoi tu utiliserais pas une variable $j[1] à $j[10] ? |
Tu parles d'un tableau J contenant entre 1 et 10 les valeurs V1 à V10 ?
Marsh Posté le 22-04-2006 à 22:30:26
Falconpage a écrit : Tu parles d'un tableau J contenant entre 1 et 10 les valeurs V1 à V10 ? |
Ben oui
Le tableau c'est LA solution, les variables variables comme t'a indiqué Neraud, c'est vraiment pas propre et c'est source de bug (C'est bien pour ça que j'avais pas expliqué comment faire...) Après fait comme tu veux, je suis loin d'être la personne avec le plus d'expérience ou de connaissance en prog ici, mais je pense pas qu'on me contredise sur ce point la...
Marsh Posté le 23-04-2006 à 09:08:08
Merci pour ton avis J'ai bien noté tes commentaires mais j'étais quand même interessé pour connaitre au cas où
Je programme principal en VB pour mon boulot (petits programme, là non plus rien d'extraordinaire). C'est clair que les tableaux c'est LA solution
Merci en tout cas pour vos aides et commentaires
Marsh Posté le 22-04-2006 à 11:37:44
Bonjour à tous,
Voilà ma requête :
$requete = "SELECT nom FROM MaTable WHERE id = $variable1";
Tout ça est exectuté dans une boucle FOR :
Je souhaite que mon $j soit utilisé pour faire tourné $variable1 à $variable10 et $NomObjet1 à $NomObjet10
J'ai bien essayé de composer le nom de la variable et de l'injecté ensuite mais ça me jète gentiement
Si vous pouviez m'aider : merci
EDIT : c'est peut être mieux explique comme ça :
En gros je ré-explique ce que je souhaite.
J'ai $j la variable qui va passer de 1 à 10 dans une boucle FOR
Je veux utiliser dans cette boucle une variable $V1 à $V10.
Je veux utiliser $V1 quand $j=1, $V2 quand $j=2, etc.
Je voulais écrire "$V".$j pour construire ma variable $V1 par exemple mais cela ne marche pas : il doit bien y avoir une solution ?
Message édité par Falconpage le 22-04-2006 à 14:39:46