nom de variables formée a partir d'autres variables [PHP] - PHP - Programmation
Marsh Posté le 12-06-2003 à 22:07:21
Je viens de penser a un truc ...
Ce qui me faut la c'est un table a 2 dimensions.
Genre : $d[$j][$i]
Ca fonctionne sous php ?
Marsh Posté le 12-06-2003 à 22:10:32
OK j'ai trouvé
google !!!
Code :
|
Marsh Posté le 12-06-2003 à 22:10:35
Tu peux accéder à une variable par ${'nom de la variable'};
Il suffit simplement que la chaine de caractère entre accolades (que tu construits comme tu veux, par concaténations, appels de fonction ... ) corresponde à un nom de variable
edit : j'ai pas du comprendre la question
Marsh Posté le 12-06-2003 à 22:15:02
Non c'est nickel mrBebert
Avec ton astuce j'ai pas besoin de changer tous les noms de variables de mon forumlaire. Alors que si j'avais opté pour le tableau a plusieurs dimensions , j'aurai du tout changer
MERCI
Marsh Posté le 12-06-2003 à 22:18:25
Je viens de tester et c'est exactement ce que je voulais !!
Code :
|
retourne le nom du membre
Trop classe
Marsh Posté le 12-06-2003 à 22:23:08
Je me demande comment t'as fait pour comprendre ce que je racontait plus haut
T'es télépathe
Marsh Posté le 12-06-2003 à 22:24:40
Citation : ... comme si j'avais une variable $h.$j."sb".$i."_participants |
je crois que c'est ca qui m'a mis sur la voie
Marsh Posté le 13-06-2003 à 09:36:26
rien qu'avec le titre j'avais la réponse à donner.
Ton titre etait 10x plus clair que l'explication :-D
Marsh Posté le 15-06-2003 à 16:21:39
J'ai un autre soucis à présent mais toujours lié a la meme problématique
Je voudrais avoir dans une boucle les valeurs du type $data['h1sb1_handicap'] par exemple
Comment former correctment la variable ?
$data['."{'h'.$j.'sb'.$i.'_handicap'}".'] ne marche pas
et $data['{"h".$j."sb".$i."_handicap"}'] non plus
Marsh Posté le 15-06-2003 à 18:14:59
très intéressant topic, j'y ai lu des trucs qui vont m'être bien utiles
redrat > ce serait pas plutôt :
Code :
|
Marsh Posté le 15-06-2003 à 18:21:09
HORNY-GRANDCORNU a écrit :
|
Manqué un ', enfin, si c'est ça...
Marsh Posté le 16-06-2003 à 00:00:53
Apparemment c'est pas ca ou alors j'ai une erreur dans mon code mais ca m'étonnerait car tout sembl correct.
En tout cas j'ai plus d'erreur de syntax mais
Code :
|
Si quelqu'un d'autre à la solution
Marsh Posté le 16-06-2003 à 00:03:28
La chaine de caractères correspondant au nom de la variable est dans un tableau ?
${data['h' . $j . 'sb' . $i . '_handicap']}
sit tu écris 'data[indice]', ca te met la chaine de caractères : data[indice], car PHP n'évalue pas ce qui est entre ' '
Marsh Posté le 16-06-2003 à 00:17:50
Avec ton code j'ai : Parse error: parse error, unexpected '['
Marsh Posté le 16-06-2003 à 00:26:19
Il faut peut être passer par une variable intermédiaire alors :
$var = $data['h' . $j . 'sb' . $i . '_handicap'];
echo ${$var};
Je crois qu'on peut même écrire $$var;
edit : nan, en fait, il manquait un $
${$data['h' . $j . 'sb' . $i . '_handicap']}
Il est peut être aussi possible d'écrire directement :
$$data['h' . $j . 'sb' . $i . '_handicap'];
Marsh Posté le 16-06-2003 à 20:31:42
Merci mrbebert mais c'est toujours pas ca (retourne toujours NULL)
Ca commence a me rendre dingue
PS : j'ai essayé les trois techniques si dessus et aussi tester ma requete qui retourne bien un enregistrement)
Marsh Posté le 16-06-2003 à 21:25:32
En fait la solution c'est $data['h'.$j.'sb'.$i.'_participants'];
Sans utiliser de $$ ou de { }
Merci mrbebert et merci aussi a MichaelFR de phpdebutant.com
Marsh Posté le 16-06-2003 à 21:28:18
Tu voulais juste récupérer le contenu du tableau
Je croyais que tu voulais récupérer le contenu d'une variable dont le nom était dans un tableau
Marsh Posté le 12-06-2003 à 21:59:57
J'ai un soucis pour traiter les données soumises par un formulaire plutot complexe composé d'une vingtaine de listes déroulantes contenant des noms de membres.
Chaque liste retourne une variable (nom d'un membre).
La première liste retourne $h1sb1_participants et la dernière $h3sb3_participants
Pour traiter les résultats du formulaire, il faut que je crée une requete qui va chercher dans une table l'id membre qui correspond au nom retourné dans la variable $h1sb1_participants.
Jusque la tout va bien avec une requete du type :
"SELECT * FROM participants_hommes WHERE nom_participants='".$h1sb1_participants."'"
Pour traiter toutes les listes, je souhaiterai créer un double boucle FOR imbriquée du type :
$j=1;
for($j=1;$j<3;$j++)
{
$i=1;
for($i=1;$i<4;$i++)
{
"SELECT * FROM participants_hommes WHERE nom_participants='".$h1sb1_participants."'"
}
}
En gérant avec $i et $j les différentes variables de $h1sb1_participants à $h3sb2_participants comme si j'avais une variable $h.$j."sb".$i."_participants
Comment faire ? Ou si vous avez une solution plus simple ?
PS : j'espere que vous allez comprendre ce que je raconte