login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Query] Probleem met query

Offline mike87 - 26/08/2006 22:34
Avatar van mike87Nieuw lid ik zit met een beetje met een, voor mij, lastige query in me maag.

Ik heb een database met updates van alle leden met hierin diverse informatie.
Nu moeten een aantal van deze dingen opgeteld worden.
Maar, om de goeie statestieken te berekenen moeten er 2 velden worden opgeteld, maar per lid maar 1 veld.
Anders kloppen de statestieken niet.

Wat ik op wil tellen zijn het aantal auto's en kogels die de leden bij elkaar hebben.
Maar als het lid in de ene update 200 auto's heeft en in de volgende nog 200, mogen deze niet als 400 worden geteld natuurlijk.

hoe ik dit moest doen wist ik niet dus ik ging proberen maar ik kom er maar niet uit. Mijn query, die niet werkt ziet er als volgt uit:

  1. <?php
  2. $Kogels = mysql_result ( mysql_query("SELECT DISTINCT(LidId), SUM(Kogels) FROM History"), 0 );
  3. $Autos = mysql_result ( mysql_query("SELECT DISTINCT(LidId), SUM(Autos) FROM History"), 0 );
  4.  
  5. ?>


Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /data/members/free/tripod/nl/m/e/s/messedup/htdocs/Modules/Top/Stats.php on line 15

Deze error komt bij beide query's.
Hoe moet ik deze query aanpassen?

Gr,
Mike

4 antwoorden

Gesponsorde links
Offline marten - 26/08/2006 23:16
Avatar van marten Beheerder
  1. <?php
  2. $Kogels = mysql_query("SELECT DISTINCT(LidId), SUM(Kogels) FROM History"), 0 );
  3. $Autos = mysql_query("SELECT DISTINCT(LidId), SUM(Autos) FROM History"), 0 );
  4.  
  5. while($kogelresult = mysql_fetch_array($Kogels)) {
  6. echo $kogelresult['veldnaam'];
  7. }
  8. ?>


Probeer eens in een while lus te zetten
Offline Dolfje - 26/08/2006 23:18
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Doe eens het volgende, dan zal mysql zelf de fout in je query teruggeven i.p.v. dat hij geen goede mysql resource krijgt.

  1. <?
  2. <?php
  3. $kogels = mysql_query("SELECT DISTINCT(LidId), SUM(Kogels) FROM History")or die(mysql_error());
  4. $autos = mysql_query("SELECT DISTINCT(LidId), SUM(Autos) FROM History")or die(mysql_error());
  5. $Kogels = mysql_result ( $kogels, 0 );
  6. $Autos = mysql_result ( $autos, 0 );
  7.  
  8. ?>
  9.  
  10. ?>
Offline mike87 - 27/08/2006 06:57
Avatar van mike87 Nieuw lid Nu krijg ik:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

Waarschijnelijk zal ik er dus GROUP BY moeten zetten, maar GROUP BY wat? Zelf weet ik niet precies wat deze functie inhoud, lijkt me dat hij velden van dezelfde inhoud bij elkaar haalt ?
Offline Richard - 27/08/2006 07:48
Avatar van Richard Crew algemeen GROUP BY groepeert simpelweg op wat je zegt dat het moet doen;-)

  1. SELECT LidId, SUM(Kogels) FROM History GROUP BY LidId


Dit zal het LidId opleveren, plus de som van alle Kogels van dat LidId..

Ik raad je aan om de documentatie op dev.mysql.com eens goed te lezen...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.198s