Die 60 Ältesten Einträge listen

Cusco

Erfahrenes Mitglied
Hi,

Wie muss der mysql_query-Befehl aussehen wenn ich die 60 jüngsten Einträge haben möchte? Typ ist DATE, das älteste der 60 Einträge soll zuerst gelistet werden.

Bisher habe ich mich damit begnügt die Komplette Datenbank nach DATE zu sortieren, Anzahl der Einträge ermitteln, dann DB einlesen mit überspringen der ersten Einträge per IF bis ich auf > $gesamteinträge-60 stoße. Das kann doch nicht die Lösung sein. :(
Dabei enthält die Datenbank bisher ca 770 Einträge, die Daten ab Januar 2005 ohne Feiertage und Wochenenden enthält. Fast jeden Tag kommt ein neuer Eintrag hinzu.

Hier das Skript um welches es geht, es generiert ein Diagramm als JPG http://www.goldsammler.eu/goldpreis...s.php?metall=gold&kurs=eur&gewicht=31.1034768
 
Zuletzt bearbeitet:
Versuch's mal folgendermaßen:

Code:
SELECT * 
FROM (   SELECT id, datum
         from deine_tabelle
         order by datum desc limit 60 ) t 
ORDER BY t.datum asc;

Also mit dem subselect holst du dir erstmal deine 60 neuesten Einträge
und dann musst du das Ergebnis nur noch sortieren.

lg Andi
 
Versuch's mal folgendermaßen:

Code:
SELECT * 
FROM (   SELECT id, datum
         from deine_tabelle
         order by datum desc limit 60 ) t 
ORDER BY t.datum asc;

Also mit dem subselect holst du dir erstmal deine 60 neuesten Einträge
und dann musst du das Ergebnis nur noch sortieren.

lg Andi

Hi,

ich sehe bei den Code nicht ganz durch, ich habe das jetzt so:

Code:
$befehl = "SELECT * FROM (SELECT id, `sortdatum` from ".$dbtabelle_goldsilberstatistik." order by `sortdatum` desc limit ".$wertanzahl." ) t ORDER BY t.sortdatum asc;";

Was muss ich bei id einsetzen? Wofür steht die?

Aufbau
$dbtabelle_goldsilberstatistik = Name der Tabelle
sortdatum = das Datum wonach sortiert und ausgesucht werden soll.
$wertanzahl= Anzahl der Einträge die zurückgegeben werden sollen
Mehr ist glaub ich nicht nötig

Nur leider wird beim obigen Code nicht ein Datensatz übergeben.
 
Hi,

er nimmt an, dass Du eine Spalte id in Deiner Tabelle hast. Im Subselect müsstest Du alle Felder auflisten, die Du auswählen willst (Du willst doch nicht nur das Datum ausgeben...).

LG
 
Hallo!

Möglicherweise hat dir kuddeldaddeldu schon den entscheidenden Tipp gegeben. Solltest du allerdings noch immer Probleme haben, wäre der Aufbau der Datenbanktabelle bzw. die Spalten die du daraus benötigst hilfreich.

lg Andi
 
Habe es jetzt dank den letzten Tip hinbekommen, ich habe das gefühl das das Skript auch gleich ein wenig schneller ist. Danke euch beiden :)
 
Zurück