Getallen optellen vanuit database
Ik zit een beetje vast met een php-code... ik wil namelijk getallen uit een database optellen: bv.
$sql = "SELECT * FROM database";
$result = mysql_query($sql);
while ($record = mysql_fetch_array($result)) {
Dit is wat ik al heb. Wat ik nu moet kunnen is de gegevens uit de rijl 'aantal' halen en deze optellen met elkaar bv.
Rij 1= 2
Rij 2= 4
Rij 3= 5
Ik moet dus alle rijeen kunnen optellen met elkaar, enig idee hoe dat moet dus in feite zou het moeten "som(rij1-Rij????) zijn.....
Groetjesss
$record['totaal'] zal nu de som van alle gegevens in de kolom 'aantal' bevatten. Hiermee laat je dus de database het werk voor je doen. Zie de handleiding van MySQL voor vele, vele handige en snelle functies. Daar kan php echt niet tegenop!
$totaal = 0;
while($rij = mysql_fetch_assoc($result))
{
$totaal += $rij['getalveld'];
}
echo $totaal;
Maar ik zat net ook te zoeken of het ook direct kon. Misschien werkt dit:
sql:SELECT SUM(getalveld) as totaal FROM database
php om antwoord te krijgen (dus ipv de while-lus):
echo mysql_result($result, 0, 'totaal');
@Jelmer: Is de eerste manier niet te langzaam? Aangezien PHPerik ook altijd zit te timmeren op de snelheid van een script en zo min mogelijk loops gebruiken.
Stel dat je 1500 records hebt. Als je de som laat uitrekenen door MySQL, kost het je slechts 1 fetch. Als je het wilt uitrekenen in PHP, kost het je 1500 fetches.
Daar komt nog eens bij dat optellen in PHP waarschijnlijk meer tijd kost dan in MySQL. PHP is immers een geïnterpreteerde taal (dus langzaam), en de routines in MySQL zijn behoorlijk geoptimaliseerd voor snelheid.
$sql = "SELECT SUM(aantal) AS totaal FROM databasenaam";
$resultaat = mysql_query($sql);
while ($row = mysql_fetch_array($resultaat)) {
echo mysql_result($resultaate, 0, 'totaal');)
}
?>
En die werkt. Heb het manueel opgeteld en het klopt. Bedankt voor de reply's...
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?PHP
$sql = "SELECT SUM(aantal) AS totaal FROM databasenaam";
$resultaat = mysql_query($sql);
echo mysql_result($resultaate, 0, 'totaal');
?>
$sql = "SELECT SUM(aantal) AS totaal FROM databasenaam";
$resultaat = mysql_query($sql);
echo mysql_result($resultaate, 0, 'totaal');
?>
werkt ook! en sneller
Zonder de 'e' erachter dan :P Dus $resultaat, 0, 'totaal'
mysql_query($sql) or die("Foutje: ".mysql_error());
Perfectionist :P
'Het mysql resource verhaal'
Sebastiaan:
mysql_query($sql) or die("Foutje: ".mysql_error());
Liever enkele quotes ;-)
Maar nu gebruiken we geen html dus het maakt nog niet zo veel uit ;)
Maar ik gebruik bij alles, behslve query's, idd ook liever enkele quotes ;)