Vous devez ordonner les résultats et définir une limite.
En supposant que la date et l'heure correspondent à la date à laquelle vous vouliez commander :
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
MODIF : Pour répondre au commentaire d'OP:"le résultat que j'obtiens est le début de la ligne 50 pour la première requête et il suit par 49,48,47,46 Est-ce possible que je puisse obtenir ce début à partir de la ligne 46,47,48,49,50?"
Vous pouvez soit le faire avec le résultat en PHP, en récupérant les lignes et en les stockant dans un tableau et en inversant le tableau. Je ne crois pas que vous puissiez parcourir efficacement une ressource de résultat mysql en sens inverse.
Pour ce faire dans la requête SQL, vous devez créer une table temporaire avec la requête d'origine :
$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
";
Le résultat de la requête initiale est utilisé comme table pour effectuer une recherche dans une nouvelle requête, qui est triée par date/heure en ordre croissant. J'ai dû appliquer le DATE_FORMAT sur la requête externe car nous avons besoin du champ datetime pour commander à nouveau.