Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
797 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] nom de variables formée a partir d'autres variables

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] nom de variables formée a partir d'autres variables

n°425569
redrat
Posté le 12-06-2003 à 21:59:57  profilanswer
 

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

mood
Publicité
Posté le 12-06-2003 à 21:59:57  profilanswer
 

n°425585
redrat
Posté le 12-06-2003 à 22:07:21  profilanswer
 

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 ?

n°425593
redrat
Posté le 12-06-2003 à 22:10:32  profilanswer
 

OK j'ai trouvé   :)  
 
google !!!

Code :
  1. <?php
  2. $fruits = array ( "fruits"  => array ( "a" => "orange",
  3.                                        "b" => "banane",
  4.                                        "c" => "pomme"
  5.                                      ),
  6.                   "nombre" => array ( 1,
  7.                                        2,
  8.                                        3,
  9.                                        4,
  10.                                        5,
  11.                                        6,
  12.                                      ),
  13.                   "trou"   => array (      "premier",
  14.                                        5 => "second",
  15.                                             "troisi&egrave;me"
  16.                                      )
  17.                 );
  18. // Exemples d'utilisations des tableaux ci-dessus  
  19. echo $fruits["trou"][5];    // affiche "second"
  20. echo $fruits["fruits"]["a"]; // affiche "orange"
  21. unset($fruits["trou"][0]);  // supprime "premier"
  22. // Cr&eacute;er un tableau multidimensionnel
  23. $juices["pomme"]["vert"] = "bon";
  24. ?>

n°425594
mrbebert
Posté le 12-06-2003 à 22:10:35  profilanswer
 

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


Message édité par mrbebert le 12-06-2003 à 22:12:00
n°425603
redrat
Posté le 12-06-2003 à 22:15:02  profilanswer
 

Non c'est nickel mrBebert  :love:  
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


Message édité par redrat le 12-06-2003 à 22:15:41
n°425611
redrat
Posté le 12-06-2003 à 22:18:25  profilanswer
 

Je viens de tester et c'est exactement ce que je voulais !!

Code :
  1. echo ${'d'.$j.'sb'.$i.'_participants'};

retourne le nom du membre
Trop classe


Message édité par redrat le 12-06-2003 à 22:19:02
n°425617
mrbebert
Posté le 12-06-2003 à 22:21:56  profilanswer
 

:sol:

n°425619
redrat
Posté le 12-06-2003 à 22:23:08  profilanswer
 

Je me demande comment t'as fait pour comprendre ce que je racontait plus haut :)
T'es télépathe  :heink:

n°425620
mrbebert
Posté le 12-06-2003 à 22:24:40  profilanswer
 

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

n°425950
Sebastien
Posté le 13-06-2003 à 09:36:26  profilanswer
 

rien qu'avec le titre j'avais la réponse à donner.
Ton titre etait 10x plus clair que l'explication :-D

mood
Publicité
Posté le 13-06-2003 à 09:36:26  profilanswer
 

n°427959
redrat
Posté le 15-06-2003 à 16:21:39  profilanswer
 

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


Message édité par redrat le 15-06-2003 à 16:25:59
n°428004
HORNY-Gran​dcornu
grumf !
Posté le 15-06-2003 à 18:14:59  profilanswer
 

très intéressant topic, j'y ai lu des trucs qui vont m'être bien utiles :)
 
redrat > ce serait pas plutôt :
 

Code :
  1. ${"data['h".$j."sb".$i."_handicap]"}


 
:??:

n°428007
RiderCrazy
Posté le 15-06-2003 à 18:21:09  profilanswer
 

HORNY-GRANDCORNU a écrit :


Code :
  1. ${"data['h".$j."sb".$i."_handicap']"}



Manqué un ', enfin, si c'est ça...

n°428629
redrat
Posté le 16-06-2003 à 00:00:53  profilanswer
 

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 :
  1. ${"data['h".$j."sb".$i."_handicap']"}
  2. retourne NULL

 
 
Si quelqu'un d'autre à la solution

n°428630
mrbebert
Posté le 16-06-2003 à 00:03:28  profilanswer
 

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 ' ' [:proy]

n°428637
redrat
Posté le 16-06-2003 à 00:17:50  profilanswer
 

Avec ton code j'ai : Parse error: parse error, unexpected '['  

n°428644
mrbebert
Posté le 16-06-2003 à 00:26:19  profilanswer
 

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; [:figti]
 
edit : nan, en fait, il manquait un $ :D  
${$data['h' . $j . 'sb' . $i . '_handicap']}
 
Il est peut être aussi possible d'écrire directement :
$$data['h' . $j . 'sb' . $i . '_handicap'];


Message édité par mrbebert le 16-06-2003 à 00:29:30
n°429818
redrat
Posté le 16-06-2003 à 20:31:42  profilanswer
 

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)


Message édité par redrat le 16-06-2003 à 20:41:31
n°429865
redrat
Posté le 16-06-2003 à 21:25:32  profilanswer
 

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

n°429870
mrbebert
Posté le 16-06-2003 à 21:28:18  profilanswer
 

Tu voulais juste récupérer le contenu du tableau :pt1cable:  
 
Je croyais que tu voulais récupérer le contenu d'une variable dont le nom était dans un tableau :sol:

n°429876
redrat
Posté le 16-06-2003 à 21:33:23  profilanswer
 

Effectivement, on a un peu compliqué la chose  :lol:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] nom de variables formée a partir d'autres variables

 

Sujets relatifs
[PHP] ça sert à quoi le @ devant une fonction ?Détection de la source du raffraichissement d'une page PHP
[CSS / link rel/PHP] aide mon CSS marche plus si je le link... (PHP)Acceder a la Registry ou a des variables d'environnment par DDE ?
[PHP] imagejpeg() > free.fr supporte mal ?Gros Probleme PHP
[PHP/FTP]Free + chmodForum (board) Php/Mysql
[HTML/PHP/JS]Optimisation site photo[PHP] Quel séparateur utilisez vous ?? et pkoi ??
Plus de sujets relatifs à : [PHP] nom de variables formée a partir d'autres variables


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR