Nom d'une variable dépend d'une autre [Résolu] - PHP - Programmation
Marsh Posté le 08-08-2010 à 20:49:55
pourquoi tu n'utilise pas des tableaux dans ton formulaire ?
Code :
|
ca te simplifierai ton traitement et ce sera bcp plus propre
sinon, tu peux faire $$donne , tout simplement, mais c'est très sale
Marsh Posté le 09-08-2010 à 09:36:03
flo850 a écrit : |
Ah bon pourquoi?
Sinonton code est dégeu Pommesky. Trop de pomme-sky sans doute. Ha. Ha.
Marsh Posté le 09-08-2010 à 09:37:39
parceuqe ca rend le code illisible et indébugable , mais surtout parceque c'est une solution à un problème qui ne dois pas se poser, les tableaux sont là pour ça
et il faut bien qu'il traite les données dans la boucle, vu que c'est dans cette meme boucle qu'il connait le nom de la variable a récupérer
Marsh Posté le 09-08-2010 à 09:41:05
Mais oui mais non, il récupère toujours la même valeur du post...
Bon bref il y a sans doute deux couilles dans le potage en même temps, il voulait sans doute écrire:
$$donnee =$_POST[$donnee];
Marsh Posté le 09-08-2010 à 16:43:36
Alors voilà j'ai trouvé la solution a mon problème
déjà :
Citation : $donnee = $resultat_array[Donnee]; <-- Donnee n'est initialisé nulle part |
"Donnee" c'est juste pour avoir le nom du champ dans lequel à été posté les données que je doit récupérer, les noms des champ sont stockés dans une table SQL et correspondent à un id qui est incrémenté a chaque boucle, ce qui me permet de traité les champs un par un.
Citation : $"$donnee" =$_POST["donnee"]; <-- Tu récupères des variables POST dans une boucle while. Ca a rien à y faire. |
Ce programme est un genre de mini cms, le formulaire d'inscription doit être flexible sans pour autant touché le code c'est pour ça que les nom de mes champs sont stocké dans une table sql et a part une boucle pour les récupérer je n'ai rien trouvé d'autre et je ne trouve pas que sa gène.
Bref donc j'ai remagné le pâté et voila ce que ça donne :
Code :
|
Je retourne donc un tableau et c'est bien plus pratique.
Merci pour tous vos conseils et n'hésiter pas si vous avez des remarques, c'est vrai que j'ai beaucoup de mal à faire un code lisible -_-
Marsh Posté le 09-08-2010 à 18:07:29
On peut pinailler sur la meilleure façon de faire, mais ton code n'a plus de parties aberrantes. Merci du retour.
Marsh Posté le 09-08-2010 à 20:54:26
gelatine_velue a écrit : On peut pinailler sur la meilleure façon de faire, mais ton code n'a plus de parties aberrantes. Merci du retour. |
si le $i, les id ne non pas forcement incrémenté, il peu y avoir des trous (voir même des gros)
sinon je comprend pas pourquoi faire une requête par id autant tout prendre et faire une condition sur la requête,
le plus simple c'est de faire un SHOW COLUMNS, et un array_merge avec ton POST
Marsh Posté le 14-08-2010 à 21:12:16
Ça y est je suis finalement arrivé à un résultat qui me convient et propre, qui corrige le problème les $id puisque je ne les utilise plus. J'ai gouté aux joies des tableaux et sa va 15 fois mieux
Voilà le code :
Code :
|
Merci pour vos remarques à tous, j'ai appris beaucoup de chose.
Marsh Posté le 20-09-2010 à 15:07:44
Personnellement je ne suis pas fan de la déclaration à coup de :
Code :
|
Il vaut mieux initialiser une variable proprement.
D'autre part :
Code :
|
Ce code va te faire une notice sur ta dernière itération, mieux vaudrait faire :
Code :
|
Enfin, ce n'est pas méchant, mais las variables globales de type GET/POST n'ont pas vocation a être récupérées dans une fonction, mieux vaut les passer proprement en arguments.
Marsh Posté le 20-09-2010 à 21:44:32
the_bigboo a écrit :
|
pourquoi array_keys ?
Code :
|
Marsh Posté le 21-09-2010 à 13:55:26
stealth35 a écrit : pourquoi array_keys ?
|
Parce que dans ta boucle, c'est $nb qui évolue et que tu incrémentes. $nb, qui est la clé de ton tableau.
Faire :
Code :
|
C'est comme faire :
Code : |
Sauf que cette dernière notation est bien plus propre. Et elle n'utilise que les clé définies dans ton tableau, à l'instar de ta méthode, qui va les tester une à une.
Marsh Posté le 21-09-2010 à 14:09:21
Code :
|
et pourquoi pas directement dans le while
Code :
|
Marsh Posté le 21-09-2010 à 14:13:28
Code :
|
Décidément j'aime pas cette notation.... la variable dans une string bof...
Après il fait ce qu'il veux, j'essaie juste de montrer comment faire des boucles correctes.
Marsh Posté le 21-09-2010 à 14:18:30
the_bigboo a écrit :
|
c'est pas en changeant son for par ton foreach que c'est plus "correct" à ce niveau là
Marsh Posté le 21-09-2010 à 14:19:22
ReplyMarsh Posté le 21-09-2010 à 14:21:26
the_bigboo a écrit : C'est juste son "for" qui est très moche c'est tout. |
et le tiens est tordu
Spoiler : mais j'ai bien compris que c'était pour s'adapter à son code |
Marsh Posté le 21-09-2010 à 14:30:28
J'ai cru un instant que ce n'était pas le cas, je suis donc rassuré ^^
Ca fait longtemps que je n'ai pas directement utilisé ces fonctions là... Tout passe par des class d'abstraction de BDD ^^
Marsh Posté le 21-09-2010 à 18:49:27
the_bigboo a écrit :
|
tester quoi ?
Marsh Posté le 21-09-2010 à 20:25:18
chaque itération de la boucle... !
Dans son code il fait :
Code :
|
Si son tableau est (c'est qu'un exemple bidon hein !) :
Code :
|
Sa boucle fera 127 itération inutiles avant d'en avoir une exploitable, alors que dans cette boucle-ci :
Code :
|
... tu ne parcourras que les données présentes dans le tableau soit une boucle par donnée (for each quoi !)
Marsh Posté le 21-09-2010 à 20:40:27
y'a pas de test quand on fait ca :
Code :
|
Marsh Posté le 21-09-2010 à 21:29:14
the_bigboo a écrit : Tu as compris mon message ? |
je pense que t'as pas compris le mien
pour toi c'est quoi la différence entre
Code : |
et
Code :
|
a part faire une fonction pour rien ?
Marsh Posté le 21-09-2010 à 21:32:48
j'ai adapté à son exemple, il n'utilisait que la clé du tableau dans son bout de code, sauf erreur de ma part.
Marsh Posté le 21-09-2010 à 21:48:11
the_bigboo a écrit : j'ai adapté à son exemple, il n'utilisait que la clé du tableau dans son bout de code, sauf erreur de ma part. |
c'est la phrase la que je comprend pas :
Et elle n'utilise que les clé définies dans ton tableau, à l'instar de ta méthode, qui va les tester une à une.
donc :
stealth35 a écrit :
et
a part faire une fonction pour rien ? |
Marsh Posté le 21-09-2010 à 22:09:54
Et elle n'utilise que les clé définies dans ton tableau,
=> le foreach se base sur ce qui se trouve dans le tableau pour boucler
à l'instar de ta méthode, qui va les tester une à une.
=> le for testera toutes les valeurs de $nb une a une séquentiellement
Ce que je compare, c'est sa boucle for par rapport a ces foreach :
Code :
|
Marsh Posté le 21-09-2010 à 22:15:41
the_bigboo a écrit : |
tu le vois ou le for ?, dans
Code :
|
Marsh Posté le 21-09-2010 à 22:18:29
Ligne 16 de son troisième bout de code posté, que j'ai d'ailleurs repris en citation dans mon comparaison...
Marsh Posté le 21-09-2010 à 22:28:03
the_bigboo a écrit : Ligne 16 de son troisième bout de code posté, que j'ai d'ailleurs repris en citation dans mon comparaison... |
donc c'est pas ta méthode mais ça méthode, relis les 2 messages
http://forum.hardware.fr/hfr/Progr [...] m#t2023996
Marsh Posté le 21-09-2010 à 22:33:35
sa méthode est le for, ma méthode est le foreach... je dois vraiment pas écrire français.
Bref, débat clos.
Marsh Posté le 08-08-2010 à 20:46:03
Bonjour,
Voila un morceau de code :
Donc voila ce morceau de code se charge de récupérer des donnée d'un formulaire d'inscription, ce formulaire est modifiable via une page d'administration donc il peut contenir plus ou moins de champs.
J'ai donc une liste des champs dans une table sql donc par exemple au premier tour de la boucle le programme interroge la BDD qui lui dit qu'il y a un champ "Nom", la variable "$donnee" prend donc la valeur "Nom " et donc j'aimerais récuperer la valeur du champ "Nom" dans une variable $nom et c'est la où je bloque, là ou j'ai marquer "$"$donnee".
Message édité par Pommesky le 14-08-2010 à 21:13:53