kleines problemchen mit ner sum-Abfrage!

2Pac

Erfahrenes Mitglied
Hallo Leute!

Ich möchte die 5 aktivsten Spieler aus einer Datenbank herauslesen. Dabei soll beachtet werden, das diese die letzten 15 Tage gespielt haben müssen. Dann sollen alle Spiele zusammen addiert werden.

Ich hab mir da so gedacht ich lese erst alle Nicknamen aus der Datenbank (andere Tabelle), dann gebe ich aus wieviele Games die haben, aber das klappt nicht so ganz wie ich mir das gedacht habe.

Hier mal mein Quelltextschnipsel:

PHP:
            echo "<br><br>Die 5 aktivsten Spieler der letzten 15 Tage:<br><br>";
            $datum = date("d.m.Y");
            $jetzt2 = $datum - (60*60*24*15);
            $result6 = mysql_db_query("$DatabaseName" , "select nick from 
scaler order by id desc");
            while ($data = mysql_fetch_row($result6))
            {
             $nick = $data[0];
             $result5 = mysql_db_query("$DatabaseName" , 
"select sum(spiele) as spiele from scaspieletag 
where datum>=$jetzt2 and nick='$nick' 
order by sum(spiele) as spiele 
desc limit 0,5");
             while ($data = mysql_fetch_row($result5))
             {
              $spiele = $data[0];
              echo "$nick - $spiele Spiele<br>";
             }
            }
Da meint er aber das da ein Fehler im mysql_fetch_row ist. Das heisst quasi ein Fehler in der Abfrage mit dem sum. Nur was ist falsch? Oder hat jemand einen anderen Lösungsweg für mein Problem.

P.S.: In der Tabelle scaspieletag sind einträge für jeden Tag drinne. Nicknamen tauchen also mehrfach auf. Jedoch nicht immer der gleiche Nickname untereinander. Inhalte sind nick, spiele, datum (integer von time()), id,art.

Bitte helft mir weiss echt nichtmehr weiter :(

MfG 2Pac
 
Zuletzt bearbeitet:
mal abgesehen davon, dass Dein Script recht umstaendlich und unsauber Programmiert ist ;) , finde ich momentan nur folgenden Error.. zumindestens ist dieser mir sofort aufgefallen.

PHP:
order by sum(spiele) as spiele

PHP:
GROUP BY spiele ...

..also keinen 2 SUM() mehr.

ahja und "select .... " != "SELECT ..." :) .
 
Hmmm also ich hab das mal ausprobiert! Aber geht auch nicht :( Es kommt folgende Fehlermeldung:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/web1254/html/bilder/index2.php on line 89

line 89 ist der SELECT wo das sum drinne steht.

Gibt es vielleicht eine Variante wie ich dies anders herausbekomme ? (will die Datenbankstruktur allerdings nicht verändern!)
 
Also sum bedingt ein group by das fehlt schon mal
dann sollte bei dem Alias (as) kein Name benutzt werden der auch ein Feldname ist
(wie kann man sonst sicher sein das er das richtige nimmt ?)
beim order by kann man nur feldnamen benutzen keine sum function


select sum(spiele) as sumspiele from scaspieletag
where datum>=$jetzt2 group by nick
order by sumspiele
desc limit 0,5"
 
Zurück