[Résolu]Comment changer un nom de variable

Comment changer un nom de variable [Résolu] - PHP - Programmation

Marsh Posté le 09-05-2006 à 00:17:50    

Salut,
voila je récupère depuis un formulaire des valeurs de plusieurs zone de liste qui sont nommées valide$id, $id correspondant à un numéro auto de ma base mysql.
 
Sur la page de résultat, je voudrais récupérer leur valeurs mais les listes n'étant pas toujours les mêmes (ca devient par exemple $valide1, $valide3 etc...) je ne peux pas mettre le nom des variables en dur
 
J'ai déjà utilisé cette commande: $valide ="${'valide'.$id}"; (ou $id correspond toujours au numéro auto de chaque ligne de ma requete sql) ca devrait me donner logiquement $valide=la valeur contenue successivement dans $valide1 puis $valide3 etc... mais là rien à faire.
Voici le code:
$reponse = mysql_query("SELECT * FROM feuille" );
 
while ($donnees = mysql_fetch_array($reponse) ){
 
$id = ($donnees['id']);  
$valide ="${'valide'.$id}";
echo "$valide";
}
Mais je n'ai pas de valeur qui s'affiche.
 
Par contre si je fais un echo $_POST["valide1"]; ca marche de même qu'un echo "$id";
 
Comment faire?
 
Merci d'avance

Message cité 1 fois
Message édité par jam1 le 09-05-2006 à 14:18:20
Reply

Marsh Posté le 09-05-2006 à 00:17:50   

Reply

Marsh Posté le 09-05-2006 à 08:39:28    

jam1 a écrit :


J'ai déjà utilisé cette commande: $valide ="${'valide'.$id}"; (ou $id correspond toujours au numéro auto de chaque ligne de ma requete sql) ca devrait me donner logiquement $valide=la valeur contenue successivement dans $valide1 puis $valide3 etc... mais là rien à faire.


 
Non, ça devrait te donner logiquement $valide = $valide1 ou $valide2 ou $valide3..., selon la valeur de $id.
 

Citation :


Voici le code:
$reponse = mysql_query("SELECT * FROM feuille" );
 
while ($donnees = mysql_fetch_array($reponse) ){
 
$id = ($donnees['id']);  
$valide ="${'valide'.$id}";
echo "$valide";
}
Mais je n'ai pas de valeur qui s'affiche.


 
Normal, ${'valide'.$id} n'est pas définie. Tu veux sûrement faire $valide = $_POST['valide' . $id];
 
Et soit dit en passant, pour tout ça, tu as les tableaux...

Message cité 1 fois
Message édité par sielfried le 09-05-2006 à 08:39:43

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 09-05-2006 à 12:45:39    

sielfried a écrit :


 
Normal, ${'valide'.$id} n'est pas définie. Tu veux sûrement faire $valide = $_POST['valide' . $id];
 
Et soit dit en passant, pour tout ça, tu as les tableaux...


 
Ok ca marche avec $valide = $_POST['valide' . $id]; j'avais essayé mais je m'était emmellé les pinceaux.
 
Ce qui est étonnant c'est que je l'avait déjà utilisé et ça marchait avec $valide ="${'valide'.$id}";.
 
Par contre comment tu ferais avec les tableaux, ca m'intéresse car je bricole le php donc si y'a mieux je suis prenneur
 
En tout cas merci beaucoup

Reply

Marsh Posté le 09-05-2006 à 13:00:47    

En nommant tes listes "valide[]" au lieu de "valide", tu devrais récupérer un tableau avec dans chaque case la valeur sélectionnée dans la liste correspondante.


Message édité par sielfried le 09-05-2006 à 13:01:27
Reply

Marsh Posté le 09-05-2006 à 14:23:12    

Merci encore pour ton aide

Reply

Marsh Posté le 11-05-2006 à 11:30:19    

Je remonte le sujet pour une précision, avant je récuperai les variables d'une page à l'autre sans passer par $_GET mais depuis quelques jour sans avoir rien changé ca ne fonctionne plus (ce qui explique pourquoi je ne pouvais pas récupérer la variable avec ma fonction).
 
Par contre ce qui m'étonne c'est que je n'ai rien changé par rapport à Easyphp donc je ne vois pas d'ou vient le changement surtout que mon site en ligne fonctionne.


Message édité par jam1 le 11-05-2006 à 12:09:25
Reply

Marsh Posté le 11-05-2006 à 12:22:01    

register_globals a dû passer à off d'une manière ou d'une autre, et c'est bien mieux comme ça.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-05-2006 à 12:32:34    

Effectivement je l'ai passé à Off (pour tester Joomla) mais même en le remettant à On ca marche pas.
 
C'est pas grave j'ai modifié le site en conséquence, de plus si c'est mieux comme ça...
 
Encore merci pour tes interventions

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed