if qui ne fonctionne pas [Résolu] - PHP - Programmation
Marsh Posté le 15-01-2007 à 11:52:32
je parie sur un register_global à off.
De toute façon autant prendre de bonnes habitudes et utiliser les tableaux $_GET et $_POST ( voir la doc )
Marsh Posté le 15-01-2007 à 12:02:49
anapajari a écrit : je parie sur un register_global à off. |
C'est-à-dire?
Marsh Posté le 15-01-2007 à 12:11:39
dans le php.ini, faut mettre la variable register_globals à off.
Quand c'est à "on", toutes les variables globales ($_SESSION, $_POST, $_GET...) sont accessibles avec l'écriture $NomVariable
ex : $_POST['choix'] est aussi accessible via la variable $choix et ça, c'est pas une bonne chose...
Suivant comme est configuré le serveur, ton script peut ne plus fonctionner correctement. Dans ton cas, tu utilises l'écriture autorisée par register_globals à "on". Mais si dans on php.ini, cetet variable est à off, alors ta variable $choix n'est pas initialisée et ne contient pas le contenu de ton formulaire posté...
Marsh Posté le 15-01-2007 à 12:15:54
rufo a écrit : dans le php.ini, faut mettre la variable register_globals à off. |
Ok, alors ça, je commence à comprendre, je crois...
Je suis allée lire la documentation que l'on m'a donnée et modifé mon code en conséquence!
Par contre, je ne vois pas pourquoi ça continue à ne pas fonctionner...
Enfin, je sais pas si j'ai fait toutes les modifications en fait...
J'ai simplement déclaré ma variable $choix:
Code :
|
Mais est-ce que je dois faire pareil pour commande? Si oui, comment?
Marsh Posté le 15-01-2007 à 12:31:57
faudrait nous montrer ton code html. Parce que je doute que $libelle puisse avoir la valeur demandée. Ta variable $commande, elle sort d'où?
Marsh Posté le 15-01-2007 à 12:48:48
rufo a écrit : faudrait nous montrer ton code html. Parce que je doute que $libelle puisse avoir la valeur demandée. Ta variable $commande, elle sort d'où? |
alors voilà mon code html:
Code :
|
commande est le nom de mon tableau de checkbox.
Marsh Posté le 15-01-2007 à 13:03:15
ben ton pb il est là :
c'est $commande = $_POST['commande']; qu'il faut faire, et non pas $choix = $_POST['choix'];
Marsh Posté le 15-01-2007 à 13:06:59
ReplyMarsh Posté le 15-01-2007 à 13:27:41
ixemul a écrit : la requete à chaque iteration de boucle |
Désolée... J'ai modifié cela...
Et j'ai tenu compte des corrections de rufo mais ça ne fonctionne toujours pas...
Qu'est-ce que je fais faux?
Marsh Posté le 15-01-2007 à 13:41:58
fgiuliano a écrit : Désolée... J'ai modifié cela... |
Sans rentrer dans le detail du code php, il serait même plus judicieux de faire un aggregat sur la somme des prix directement en SQL, genre :
"SELECT SUM(prix) FROM prix, produit WHERE produit.idproduit = prix.idproduit AND produit.libelle IN(...) "
Marsh Posté le 15-01-2007 à 13:49:18
perso, dans le value des checkbox, j'aurais plutôt mis les ID des produits puis une fois le formulaire posté, un coup de requête sql qui un SUM() de ce qui a été coché. Pas besoin de boucle, bref, ce que propose ixemul, masi en utilisant les ID et non les libellés (travailler avec les chaînes de caractères, c'est toujours un peu hasardeux, en php comme en SQL, encore plus quand on s'en sert pour une jointure)...
Marsh Posté le 15-01-2007 à 13:55:29
Ok, alors je vais tenter ça...
Et si je m'en sors pas... Ben je reviendrais vous demander de l'aide!
Marsh Posté le 16-01-2007 à 11:16:24
Voilà, alors, je ne sais pas si c'est la meilleure façon de procéder, mais en tout cas, ça fonctionne!
Code :
|
Merci pour votre aide!!
Marsh Posté le 16-01-2007 à 11:20:54
T'as plus qu'à remplacer ton SELECT * par SELECT SUM(prix) as Total et c'est bon. Comme ça, t'as plus besoin de ton while...
Marsh Posté le 16-01-2007 à 11:32:07
rufo a écrit : T'as plus qu'à remplacer ton SELECT * par SELECT SUM(prix) as Total et c'est bon. Comme ça, t'as plus besoin de ton while... |
Ok, mais en faisant cela, ça m'affiche Resource id #5... Pourquoi?
Code :
|
Marsh Posté le 16-01-2007 à 11:37:42
C'est tout bon!!!
Trop vite...
Code :
|
Merci beaucoup!
Marsh Posté le 15-01-2007 à 11:48:02
Bonjour à tous,
Je suis en train de tourner en rond et je ne vois pas que faire pour m'en sortir...
J'ai un formulaire qui me permet de sélectionner des choix avec des checkbox et j'aimerai que si tel ou tel choix est sélectionné, la somme totale s'incrémente.
Pour cela, je fais un if qui vérifie si le $choix est égal à une valeur de mon tableau et si oui, j'incrémente ma somme...
Mais malheureusement , on entre jamais dans mon if...
Voilà mon code:
si je fais un echo de $libelle et $choix, c'est exactement la même chose...
Est-ce que qqn peut me venir en aide? Merci d'avance!
Message édité par fgiuliano le 16-01-2007 à 11:18:06