login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[opgelost] optellen x aantal probleem

Offline Chupskie - 07/02/2007 13:49 (laatste wijziging 07/02/2007 22:19)
Avatar van ChupskieMySQL beginner Hallo allemaal, ik zit met het volgende probleem:
Ik ben een overzicht aan het maken van mijn orders.
  1. <?php
  2. $mcsystembeheer2 = mysql_query("SELECT * FROM tblbestelling WHERE besteller = '".$_SESSION['jeid']."' GROUP BY bestelnr ORDER BY bestelnr DESC") or die (mysql_error());
  3. while($arrc22 = mysql_fetch_assoc($mcsystembeheer2)){
  4.  
  5. $mcsystem2info = mysql_query("SELECT * FROM tblbestelling WHERE besteller = '".$_SESSION['jeid']."' AND bestelnr = '".$arrc22['bestelnr']."' ORDER BY bestelnr") or die (mysql_error());
  6. while($arrkb = mysql_fetch_assoc($mcsystem2info)){
  7.  
  8. $aantal2 = $arrkb['aantal'];
  9. $prijsps2 = $arrkb['prijs'];
  10. $prijs2 = $prijsps2 * $aantal2;
  11.  
  12. // Verhoog de totaalprijs
  13. $totaal2 += $prijs2;
  14.  
  15. }
  16. }
  17. ?>

Nu geeft hij alles goed weer, als ik 1 bestelling heb.
Maar op het moment dat ik een volgende bestelling heb,
telt hij de totalen (van beide bestellingen) bij elkaar op. Dit is dus niet juist.

Iemand een idee? Wat ik fout doe? 

4 antwoorden

Gesponsorde links
Offline Voldemort - 07/02/2007 14:28 (laatste wijziging 07/02/2007 14:29)
Avatar van Voldemort PHP ver gevorderde
  1. <?php
  2. $mcsystembeheer2 = mysql_query("SELECT * FROM tblbestelling WHERE besteller = '".$_SESSION['jeid']."' GROUP BY bestelnr ORDER BY bestelnr DESC") or die (mysql_error());
  3. while($arrc22 = mysql_fetch_assoc($mcsystembeheer2)){
  4.  
  5. $aantal2 = $arrkc22['aantal'];
  6. $prijsps2 = $arrkc22['prijs'];
  7. $prijs2 = $prijsps2 * $aantal2;
  8.  
  9. // Verhoog de totaalprijs
  10. $totaal2 += $prijs2;
  11. }
  12. ?>


Die 2e query + while is compleet nutteloos. Dit zou ook moeten werken.
Offline Chupskie - 07/02/2007 14:36
Avatar van Chupskie MySQL beginner Ja die zou inderdaad nutteloos zijn, als ik alles in 1rij zou hebben.
Maar dat is niet het geval. Een overzicht/opzet van tblbestelling:

bestellerid bestelnr artikelnr product aantal prijs

7 209345 0892 product24 10x 4.25
7 209345 0746 product58 7x 3.85
8 209346 0489 product37 8x 7.45

Dus bestelling 1 bevat, 2 artikelen. En bestelling 2, bevat in dit geval 1 artikel bijvoorbeeld.

Dus nu pakt hij als ik het op jou manier doe Voldermort, alleen de eerste prijs en telt die op.. maar het 2de artikel, wat ook in die bestelling zit, wordt er niet bij opgeteld (omdat er geen while in zit)

Ik hoop dat dit het probleem beter uitlegd.
Wie kan mij helpen?
Offline Thomas - 07/02/2007 15:37 (laatste wijziging 07/02/2007 15:37)
Avatar van Thomas Moderator Wat wil je bereiken?
Totalen per bestelling?
Totalen per besteller?

Kun je niet zoiets doen als
  1. SELECT bestelnr, SUM(hoeveelheid * prijs)
  2. FROM tblbestelling
  3. GROUP BY bestelnr


(weet niet of dit werkt)
Offline Chupskie - 07/02/2007 16:47 (laatste wijziging 07/02/2007 22:19)
Avatar van Chupskie MySQL beginner ja, als dat zou werken, dan zou dat zeker de oplossing zijn.
met sum werkte het al, alleen de aantallen, kon ik er niet bij bij rekenen.. ik ga het meteen uitproberen.. of dit werkt 

Thankxs 

edit: @Fangorn,
Ik dacht ik, ik laat nog even weten of het gelukt was.. de oplossing:
  1. SELECT bestelnr,
  2. SUM(hoeveelheid * prijs)
  3. AS test
  4. FROM tblbestelling
  5. GROUP BY bestelnr


Dus bedankt voor je oplossing  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.403s