SQL Statment

frankys9

Mitglied
Hallo Leute,

ich steh grad auf dem Schlauch und hoffe mal, dass ihr mir helfen könnt.

Folgendes Problem:
Ich muß aus einer MySQL Datenbank alle Daten in 5er Gruppen ab dem Letzten Eintrag holen.
Wichtig dabei ist, dass nach der ersten Gruppe vom letzten Eintrag aus für jede weitere Gruppe der "Zähler (MOD(nr,2)=0)" um eins erhöht wird.

Für die erste Gruppe ist es einfach ($e ist der letzte Eintrag):
SELECT * FROM table WHERE z='".$_GET['day']."' ORDER BY nr ASC LIMIT ".($e-5).",5;

Ab dem erstn Eintrag jeden 2.,3.,4., usw. ist auch nicht weiter schlimm:
in einer Schleife....
SELECT * FROM table WHERE z='".$_GET['day']."' AND MOD(nr,$i) ORDER BY nr ASC LIMIT 5;

Nun soll es aber ab dem letzten Eintrag jeder x'te sein...

Kann mir jemand einen Tipp geben

Vielen Dank
 
Also: Vom letzten an zurück gezählt jedes fünfte?
Es ist immer gut mit lebhaften Beispielen und gewünschten Ausgaben zu arbeiten, damit man dir gezielt helfen kann.

Da mit für SQL keine Möglichkeit einfällt würde ich es per PHP so machen, dass die ganze Tabelle abgefragt wird. Die Resource von mysql_query kann man erst mal verwenden um die Anzahl der Zeilen festzustellen (obwohl hier ein eigener Query schneller wäre): http://de.php.net/manual/de/function.mysql-num-rows.php

Danach kann man dann von dieser Zahl nach und nach die gewünschten Zeilen abziehen und mit [phpf]mysql_result[/phpf] direkt auf genau diese Ergebniszeilen zugreifen.

Es gibt sicher auch andere Wege nur per SQL. Hat die Tabelle einen einzelnen Primärschlüssel, der von selbst zählt (auto_increment)?
 
Zurück