Log

  • Hee, ik zet met een probleem. Ik ben bezig met een donatielog. Alleen nu loop ik een beetje vast. Ik heb al vanalles geprobeerd met een while ect. Maar ik krijg het maar niet voor elkaar. Dit is wat ik nu heb:


    PHP
    <?php
    $users = mysql_query("SELECT id FROM users WHERE familie = '" . $own['familie'] . "'");
    	while($user = mysql_fetch_assoc($users)) {
    
    
    		$donatiel = mysql_fetch_assoc(mysql_query("SELECT bedrag FROM donatielog WHERE familie = '" . $own['familie'] . "' AND userid = '" . $user['id'] . "' ORDER BY datum DESC"));
    	}
    ?>


    Ik wil nu dus dat hij alle bedragen opteld waar familie = $own['familie'] en userid = $user['id']. Ik heb het al met een while geprobeerd maar zonder succes. $donatiel is de laatste donatie van het lid wat gedoneerd is. Nu moet ik dus alleen nog weten hoe ik alle donaties van het lid bij elkaar optel. Met de while had ik het zo gedaan.



    Dan telde hij alles wel goed op maar dan kwam het achter elke user te staan. Dus stel peter en pietje zitten in een familie. en peter doneerde 100.000 en daarvoor nog een keer 20.000 kreeg je het zo:


    Peter 120.000 100.000
    Pietje 120.000 0


    Ik hoop dat iemand me kan helpen.

  • Een while in een while... Nooit doen.


    MySQL kent de SUM-functie:

    PHP
    <?php
    $donaties = $sql->query("SELECT SUM(bedrag) as `bedrag` FROM donatielog WHERE familie = '" . $own['familie'] . "' AND userid = '" . $user['id'] . "'");
    ?>
  • Citaat

    Een while in een while... Nooit doen.


    Correctie: in dit geval niet doen. Het kan wel handig zijn om bijvoorbeeld submenu's te genereren, hoewel je ook een recursieve functie kunt schrijven...


    Wat betreft de oplossing geef ik Jannick gelijk. De SUM() (som, oftewel alle gevonden rijen optellen) functie is waarschijnlijk waar je naar zocht.

  • Jannick


    :P ik dacht ook al dat ik dat beter niet kon doen. Maarja als het had gewerkt had ik daarna alsnog hier gevragen hoe het beter kon :P. En je query werk. Hartstikke bedankt :cheer: .

    Nieuwe reactie samengevoegd met originele reactie op 20.10.10 22:35:49:
    Nu heb ik alleen nog een probleem. Nu wil ik een totaal hebben. Maar hoe moet ik mijn query dan maken? Want ik had deze query om de laatste donatie te selecteren:


    PHP
    $donatielt = $sql->fetch($sql->query("SELECT bedrag FROM donatielog WHERE familie = '" . $own['familie'] . "' ORDER BY datum DESC)"), 'assoc');


    Dan selecteer je dus het laatste bod wat er in je familie is gedoneerd maar als ik nu alle totalen van elk lid wil? Dus Bijvoorbeeld:


    Pietje doneerd eerst 2000 en daarna 6000. 6000 is dus zijn laatste donatie.
    Peter doneerd eerst 5000 en daarna 3000. 3000 is dus zijn laatste donatie.


    Nu wil ik dus dat hij de laatste donaties bij elkaar optelt. Hoe doe ik dat?

  • Als je alles wilt optellen kan dat als volgt:


    PHP
    $totale += $totale + $donatie['bedrag']


    Door de + voor de = te zetten begrijpt die dat die alles moet gaan optellen bij elkaar ;).


    Weet niet of je er zo uitkomt.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!