Hoi mensen,

Ik heb in een

while ($row = mysql_fetch_array($result)) 
{
}

een prijsberekening per id uit een db. Deze wordt niet opgeslagen in de db maar nu wil ik per id vanuit de while lus alle prijzen bij elkaar optellen. Hoe doe ik dat?
Je kan daar beter een query voor gebruiken:

SELECT SUM(prijs) AS totaal FROM tabel
PHPerik, bedankt voor je reactie.
--------------------------------------------------------------------------------

Hieronder iets meer uitleg;


<?php 
$result = mysql_query("SELECT * FROM opdrachten WHERE relatienr = '$map' order by id",$db); 
while ($row = mysql_fetch_array($result)) 
{ 
$id = $row["id"]; 
$bestand = $row["bestand"]; 
$aantalbestanden = $row["aantalbestanden"]; 
$produktid = $row["produktid"]; 
$uitvoeringid = $row["uitvoeringid"]; 
$formaatid = $row["formaatid"]; 
$kort = $row["kort"]; 
$lang = $row["lang"]; 
$afwerkingid = $row["afwerkingid"]; 
$aantalid = $row["aantalid"]; 
$produktfind = mysql_query("SELECT produkt FROM produkten WHERE produktid = '$produktid'",$db); 
$produkt_produkten = mysql_result($produktfind,0); 

$uitvoeringfind = mysql_query("SELECT uitvoering FROM uitvoeringen WHERE uitvoeringid = '$uitvoeringid'",$db); 
$uitvoering_uitvoeringen = mysql_result($uitvoeringfind,0); 
$m1uitvoeringfind = mysql_query("SELECT m1prijs FROM uitvoeringen WHERE uitvoeringid = '$uitvoeringid'",$db); 
$m1_uitvoering = mysql_result($m1uitvoeringfind,0); 
$m2uitvoeringfind = mysql_query("SELECT m2prijs FROM uitvoeringen WHERE uitvoeringid = '$uitvoeringid'",$db); 
$m2_uitvoering = mysql_result($m2uitvoeringfind,0); 
$starttarieffind = mysql_query("SELECT starttarief FROM uitvoeringen WHERE uitvoeringid = '$uitvoeringid'",$db); 
$start_uitvoering = mysql_result($starttarieffind,0); 

//////// berekening m2prijs /////// 
//// custom //// 
$berekening_m2prijs_custom = ($m2_uitvoering * $opslag)/100; 
$m2prijs_opslag_custom = $m2_uitvoering + $berekening_m2prijs_custom; 
$m2prijs_custom = ($kort * $lang) * $m2prijs_opslag_custom; 
//// vast //// 
$berekening_m2prijs_vast = ($m2_uitvoering * $opslag)/100; 
$m2prijs_opslag_vast = $m2_uitvoering + $berekening_m2prijs_vast; 
$m2prijs_vast = ($kort_formaat * $lang_formaat) * $m2prijs_opslag_vast; 
////////////////////////////EINDE///////////////////////////// 

if ($formaat_formaten == 'custom') 
{ 
echo '&euro; '.$m2prijs_custom; 
} 
else 
{ 
echo '&euro; '.$m2prijs_vast; 
} 
} 
?>


Dit is per opdracht; elke opdracht heeft dus een andere prijsberekening. Hoe kan ik nu alle bedragen van alle opdrachten bij elkaar optellen?
Het is idd aan te raden om het met een query te doen maar zo kàn het ook(hier vroeg je om)

<?php
    $iTotaal = NULL;
    while($vRow = mysql_fetch_assoc($qPrijzen))
    {
        $iTotaal += $vRow['prijs'];
    }
?>


[edit]
Dit slaat niet op je nieuwe post, ik typte ff langzaam...[/edit]
En wat doet de query van PHPerik? Precies, die telt alle prijzen bij elkaar op.

Het is welliswaar niet de exacte query die jij nodig hebt, maar dat is een kwestie van aanpassen.

Wil je het in de loop doen, dan kun je eenvoudig $prijs = $prijs + $row['prijs']; in je code opnemen.
Mensen, voor alle reacties bedankt. Voor alle duidelijheid; $row['prijs'] of welke andere prijsnaam dan ook staat niet in de db. Het wordt alleen berekend en niet in de db gezet (zie hierboven mijn uitgebreidere toelichting).
Tip: Begin opnieuw.

Jouw code lijkt nergens op, wat met 1 query kan, doe jij met tig queries. Verder controleer je helemaal nergens of de queries ook zijn gelukt en of ze ook een resultaat hebben opgelevert.

Succes!
pgFrank, bedankt voor je compliment. Ik doe mijn best en als jij suggesties ter verbetering hebt hou ik mij aanbevolen. Tot nu toe heb ik mijn best gedaan en weet ik niet hoe ik het anders moet doen, vandaar mijn opzet...
Heb je soms een voorbeeld?
Roel, voor wie is jouw vraag bedoeld?

Reageren