login  Naam:   Wachtwoord: 
Registreer je!
 Forum

optellen van mysql gegevens

Offline Button - 05/11/2004 19:34
Avatar van ButtonPHP ver gevorderde hallo,

ik heb een tabel met een id en een veld 'cijfer':
nu kunnen de mensen stemmen. en het cijfer komt (natuurlijk) terecht in het veld 'cijfer' -> nu wil alle cijfers in één keer laten optellen. hoe doe ik dat?

alvast bedankt;

13 antwoorden

Gesponsorde links
Offline Thomas - 05/11/2004 19:37 (laatste wijziging 05/11/2004 19:38)
Avatar van Thomas Moderator Je raapt alle cijfers die bij een id horen bij elkaar (met GROUP BY), en deze tel je op (met SUM):

  1. SELECT SUM(cijfer) FROM tabel GROUP BY id


Zie ook de post van 2peak hieronder (vollediger):
Offline twopeak - 05/11/2004 19:37
Avatar van twopeak Gouden medaille

PHP ver gevorderde
SELECT SUM(cijfer) FROM tabel

je kunt dan ook gaan doen

SELECT *,SUM(cijfer) AS totaal FROM tabel

zodat je alle resultaten ophaalt en een extra cel krijgt die totaal noemt en altijd alle cijfers opgeteld heeft (dus altijd hetzelfde)
Offline Button - 05/11/2004 19:45
Avatar van Button PHP ver gevorderde
  1. $optelsom_cijfer="SELECT SUM(cijfer) FROM poll GROUP BY id ";
  2.  
  3. $som = mysql_query($optelsom_cijfer) or die ('Fout : ' . mysql_error());
  4. //check of de query lukt anders geef een foutmeldingen slaag dit alles op in $som
  5.  
  6. echo ($som);


zo heb ik het gedaan, maar volgens mij klopt dat niet want ik krijg:
Resource id #3
Offline Maarten - 05/11/2004 19:47 (laatste wijziging 05/11/2004 19:47)
Avatar van Maarten Erelid ja je moet nog

mysql_result($som,0); nemen denk ik

Dusseuhm
$som = mysql_result($som,0);
Offline Hans - 05/11/2004 19:49
Avatar van Hans HTML beginner
  1. $som = mysql_result(mysql_query("SELECT SUM(cijfer) FROM poll GROUP BY id ;"), 0);
  2.  
  3. echo $som;


Zoiets?
Offline Button - 05/11/2004 19:51
Avatar van Button PHP ver gevorderde
  1. $optelsom_cijfer="SELECT SUM(cijfer) FROM poll GROUP BY id ";
  2.  
  3. $som = mysql_query($optelsom_cijfer) or die ('Fout : ' . mysql_error());
  4. //check of de query lukt anders geef een foutmeldingen slaag dit alles op in $som
  5.  
  6. $som = mysql_result($som,0);
  7.  
  8. echo ($som);


heb nu dit en krijg als antwoord: "10" wat het eerste cijfer is in van mijn tabel in het veld cijfer en ze moeten allemaal worden opgeteld
Offline Hans - 05/11/2004 19:58 (laatste wijziging 05/11/2004 20:10)
Avatar van Hans HTML beginner
  1. <?
  2. $som = mysql_query("SELECT *,SUM(cijfer) AS totaal FROM poll GROUP BY id ;");
  3.  
  4. $row = mysql_fetch_row($som);
  5. echo $row['totaal'];
  6. ?>


Zoiets dan?
Was ff verward, je hoort geen mysql_result te gebruiken, maar het resultaat te fetchen.

EDIT: ff wat veranderd, moeilijk als je het niet kunt testen
Offline Button - 05/11/2004 20:09
Avatar van Button PHP ver gevorderde Notice: Undefined index: totaal in c:\inetpub\wwwroot\testmap\poll\stem_resultaten.php on line 24

nu krijg ik die fout...
Offline Tuinstoel - 05/11/2004 20:15
Avatar van Tuinstoel PHP expert $totaal is ongedefiniërd ofzoiets, post die regel eens.
Offline Button - 05/11/2004 20:17
Avatar van Button PHP ver gevorderde het is dat stukje code van Hans...

maar voor de volledigheid:
  1. <?
  2. $host="localhost";//je host
  3.  
  4. $dbnaam="test";//je databasenaam
  5.  
  6. $db=mysql_connect($host);//connecten naar de host
  7.  
  8. mysql_select_db($dbnaam, $db);//de database selecteren
  9.  
  10. //connectie maken met de database;
  11.  
  12.  
  13.  
  14.  
  15. $som = mysql_query("SELECT *,SUM(cijfer) AS totaal FROM poll GROUP BY id ;");
  16.  
  17. $row = mysql_fetch_row($som);
  18.  
  19. echo $row['totaal'];
  20.  
  21.  
  22. ?>
Offline Tuinstoel - 05/11/2004 20:18
Avatar van Tuinstoel PHP expert whaha, je moet er nog een while loop aanzetten.

  1. <?
  2.  
  3. $som = mysql_query("SELECT *,SUM(cijfer) AS totaal FROM poll GROUP BY id ;");
  4.  
  5. while($row = mysql_fetch_row($som))
  6. {
  7.  
  8. echo $row['totaal'];
  9. }
  10. ?>


snappie.
Offline Button - 05/11/2004 20:21 (laatste wijziging 06/11/2004 14:46)
Avatar van Button PHP ver gevorderde dan krijg ik de fout 6 keer, er zijn zoveel gegevens in mijn tabel 
en dat resultaat wat ik dan krijg is niet hetgene wat ik zou willen hé: ik wil de som van alle gegevens.
ik zit dus nog altijd met de fout. Kan dit liegen aan mijn php.ini ofzo want zo die code normaal niet moeten lukken?
Offline twopeak - 06/11/2004 19:54 (laatste wijziging 06/11/2004 19:56)
Avatar van twopeak Gouden medaille

PHP ver gevorderde
Probeer eerst eens met phpmyadmin de query
  1. SELECT SUM(cijfer) AS totaal FROM poll

Normaal gezien krijg je dan al de juiste uitvoer; nee?
Indien nee probeer je wat te spelen met deze query in phpmyadmin tot je het goed hebt en PAS DAARNA ga je liggen knoeien met php.

De juiste query paste je maar in dit script...

  1. <?
  2. $host="localhost";//je host
  3. $dbnaam="test";//je databasenaam
  4. $db=mysql_connect($host);//connecten naar de host
  5. mysql_select_db($dbnaam, $db);//de database selecteren
  6. //connectie maken met de database;
  7.  
  8.  
  9. $somquery = mysql_query("SELECT SUM(cijfer) AS totaal FROM poll");
  10. $totaal = mysql_result($somquery,0,"totaal");
  11. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s