Getallen optellen vanuit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pink

Pink

15/11/2005 13:08:00
Quote Anchor link
Hoi,

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
 
PHP hulp

PHP hulp

29/11/2024 08:27:38
 

15/11/2005 13:30:00
Quote Anchor link
$sql = "SELECT SUM(aantal) AS totaal FROM database";

$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!
 
Jelmer -

Jelmer -

15/11/2005 13:39:00
Quote Anchor link
Tel alle getallen met php, dus via
$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');
 

15/11/2005 15:18:00
Quote Anchor link
@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.
 
Willem vp

Willem vp

15/11/2005 16:18:00
Quote Anchor link
De while op zich zal niet het probleem zijn. Wanneer je echter veel records hebt die bij elkaar moeten worden opgeteld, is 'ie wel erg duur.

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.
 

15/11/2005 19:03:00
Quote Anchor link
Ik heb volgende code gebruikt:

$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...
 
Han eev

Han eev

15/11/2005 19:22:00
Quote Anchor link
Die while kan ook weg...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
$sql
= "SELECT SUM(aantal) AS totaal FROM databasenaam";
$resultaat = mysql_query($sql);

echo mysql_result($resultaate, 0, 'totaal');
?>

werkt ook! en sneller
 
Willem Jan Z

Willem Jan Z

15/11/2005 19:47:00
Quote Anchor link
Zonder de 'e' erachter dan :P Dus $resultaat, 0, 'totaal'
 

15/11/2005 23:40:00
Quote Anchor link
mysql_query($sql) or die("Foutje: ".mysql_error());
 
Willem Jan Z

Willem Jan Z

16/11/2005 00:06:00
Quote Anchor link
Perfectionist :P
 

16/11/2005 08:26:00
Quote Anchor link
Tsja. Je moet het hun goed aanleren. Ik misschien wel ff een tut erover schrijven. :P
'Het mysql resource verhaal'
 
Jan Koehoorn

Jan Koehoorn

16/11/2005 08:30:00
Quote Anchor link
Sebastiaan:
mysql_query($sql) or die("Foutje: ".mysql_error());


Liever enkele quotes ;-)
 

16/11/2005 08:55:00
Quote Anchor link
Ja daar heb je feitelijk wel gelijk in ;)
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 ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.