Sie müssen die Ergebnisse sortieren und ein Limit festlegen.
Angenommen, datetime ist das, was Sie bestellen wollten:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
BEARBEITEN: Um den Kommentar von OP zu beantworten:"Das Ergebnis, das ich bekomme, ist der Start für Zeile 50 für die erste Abfrage, gefolgt von 49,48,47,46. Ist das möglich, dass ich diesen Start aus Zeile 46,47,48,49,50 erhalten kann?"
Sie können dies entweder mit dem Ergebnis in PHP tun, indem Sie die Zeilen abrufen und in einem Array speichern und das Array umkehren. Ich glaube nicht, dass Sie eine MySQL-Ergebnisressource effizient rückwärts durchlaufen können.
Dazu müssen Sie in der SQL-Abfrage eine temporäre Tabelle mit der ursprünglichen Abfrage erstellen:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM (
SELECT
lat,
lng,
datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
) AS tmp_markers
ORDER BY datetime ASC
";
Das Ergebnis der ersten Abfrage wird als Tabelle für die Suche in einer neuen Abfrage verwendet, die nach Datum und Uhrzeit aufsteigend sortiert ist. Ich musste das DATE_FORMAT auf die äußere Abfrage anwenden, weil wir das datetime-Feld brauchen, um wieder zu sortieren.