Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
J'ai besoin d'aide, je commence à bloquer et ne trouve pas vraiment ce que je veux.
j'ai un formulaire:
<form action="recap.php" method="post"> ... Type<select name="type"> <option value="eb1">EB1</option>...
Je choisis la valeur eb1 et la retrouve sous $type dans recap.php:
dans recap.php, j'ai:
<?php
$choix1 = $_POST['choix1'];
$choix2 = $_POST['choix2'];
$type = $_POST['type'];
include ('../page.php');
$res= mysql_query ('select sum("'.$type.'") from recap WHERE choix="'.$choix1.'"')OR die(mysql_error());
$total = mysql_fetch_row($res);
echo $total[0];
?>et dans ma BDD, jai:
table : recap
choix eb1
S42 32
S43 4
S37 23
Donc le select sum("'.$type.'") semble poser probleme. quelque soit ma valeur de type, j'obtiens 0 dans recap.php.
Alors que si j'ai select sum(eb1), jai la bonne valeur. je comprends pas tout mais j'ai nul part que select sum("'.$---.'") était possible
ou peut etre ai je moyen de faire autrement pour additionner les valeurs d'un champ?
merci de m'aider
Hors ligne
hello,
je pense qu'il suffit de supprimer les guillemets inutiles.
mysql_query ("select sum({$type}) from recap WHERE choix='{$choix1}') OR die(mysql_error());PS : mettre des guillemets pour une chaine permet de ne pas avoir à faire de concaténation pour les variables.
Hors ligne
Voila la réponse:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '}) as total from recap WHERE choix={$choix1}' at line 1
Hors ligne
j'ai oublié de fermer le guillemet de fin
mysql_query ("select sum({$type}) from recap WHERE choix='{$choix1}'") OR die(mysql_error());sinon, essaies en supprimant les accolades
Hors ligne
Merci pour ton aide,
après avoir essayé toutes les possibilités (je crois), j'en ai 2 qui me donnent pas un message d'erreur.
le probleme est qu'ils donnent 2 valeurs différentes alors qu'ils devraient donner 32 pour les 2, soit:
sum("'.$type.'") --> 0 (pas bon) et
sum(eb1)--> 32 (bon)
et la je comprends rien.
par ailleurs, si je fais un echo $type ;
j'obtiens bien eb1
aidez moi svp
Hors ligne
dans ta requête, tu essaies de faire sum('eb1') ce qui te renvoie 0 : l'addition de chaine renvoie 0...
c'est pour ça qu'il faut supprimer les guillemets/quote autour du paramètre que tu veux additionner, pour que ce soit la valeur de la colonne et pas son nom qui soit additionné
Hors ligne
C'est sur, tu avais raison j'ai donc essayé
sum('.$type.')
et c'est l seule formule qui me donne la bonne valeur
et un grand merci pour l'aide; ça donne du courage.
Hors ligne