Additionner les valeurs de plusieurs checkbox

Eléphanteau du PHP | 10 Messages

22 sept. 2006, 01:03

Bonjour à tous,

j'ai fais un peut le tour de pas mal de tutaux et je n'arrive pas à trouver une soluce pour mon pb, j'imagine que ça doit être simple, enfin je pense..

j'ai une variable qui définit un montant total à dépasser exemple "$montant_total = 500.00", plus bas j'afficher une liste de checkbox, chaque checkbox contient un prix exemple

Code : Tout sélectionner

<input="ckeckbox" name="id[]" value="15.00">
j'essaie d'additionner les valeurs émisent par les checkbox sélectionnées, comme ceci,

Code : Tout sélectionner

if (isset($send)){ foreach ($id as $pid){ $montant_query = tep_db_query("select id, dossier, SUM(prix) as montant from ventes where id = '" . $pid . "' group by dossier"); $tot = tep_db_fetch_array($montant_query); echo $tot['montant']; } }
le problème est que cela affiche le prix de chaque checkbox même en faisant un SUM et un group by, comment je peux faire pour additionner ces prix avec un foreach et obtenir un montant total ? car ensuite je voudrai faire,

Code : Tout sélectionner

if ($tot['montant'] > $montant_total){ condition 1... } else{ condition 2... }
merci pour vos réponses..

Eléphant du PHP | 451 Messages

22 sept. 2006, 06:05

Salut,

Peut être comme ça :
if (isset($send)){
$cumul=0;
foreach ($id as $pid){
$montant_query = tep_db_query("select id, dossier, SUM(prix) as montant from ventes where id = '" . $pid . "' group by dossier");
$tot = tep_db_fetch_array($montant_query);
echo $tot['montant'];
$cumul=$cumul+$tot['montant'];
}
echo "<BR>Cumul=".$cumul;
}
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 sept. 2006, 09:44

Et la ligne
$cumul=$cumul+$tot['montant']; 
peut être simplifié en
$cumul += $tot['montant']; 
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.