[RESOLU] Mélande d'ORDER BY avec LIMIT

Eléphanteau du PHP | 10 Messages

11 févr. 2019, 21:46

Bonsoir,

J'ai beau écumer les forum, je ne trouve qu'une partie de réponse et pas moyen d'en sortir...

J'insère dans une table avec un id auto incrément des infos de températures.

Table => id, date, heure, températures

Je veux sortir ces infos en partant du dernier enregistrement
sql2="SELECT * FROM `table` ORDER BY id DESC  LIMIT 50";
Jusque là, tout va bien... il m'affiche une liste avec les 50 derniers enregistrements.

Maintenant, je voudrais que ces 50 enregistrements sortent trié par date ASC...
J'ai tenté en vain de mélanger les ORDER BY, soit ça donne pareil soit il me prend les 50 PREMIERS enregistrements...

Si quelqu'un a une piste, je suis preneur.

Après je les mets dans un tableau
foreach($pdo->query($sql2, PDO::FETCH_ASSOC) as $row){
    echo "['".$row['date']." ".$row['heure']."',".$row['temp']."],";
}
Et tout cela me donne un super graphique (merci Google Chart) mais avec les points dans le mauvais sens... lecture de droite à gauche du coup... Grr... dans un graphique c'est pas top.

Merci pour vos pistes, solutions ou idées,...

Excellente semaine

Mammouth du PHP | 1134 Messages

11 févr. 2019, 21:51

SELECT * FROM `table` ORDER BY date LIMIT 50
ne fait pas ce qui est attendu ?

dans le foreach, mettre les éléments dans un tableau temporaire, puis
http://php.net/manual/fr/function.array-reverse.php

Mammouth du PHP | 1560 Messages

12 févr. 2019, 15:41

soit tu imbrique 2 SELECT l'un dan l'autre

sql2="SELECT * FROM (SELECT * FROM `table` ORDER BY id DESC LIMIT 50) tmp ORDER BY id ";

soit tu peux utiliser array_reverse comme suggeré par Or1 mais pas besoin d'un tableau temporaire
foreach(array_reverse($pdo->query($sql2, PDO::FETCH_ASSOC)) as $row){
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Eléphanteau du PHP | 10 Messages

12 févr. 2019, 17:46

Pour la array_reverse, il plante => Data column(s) for axis #0 cannot be of type string×

Pour la requête imbriquée, ça a fonctionné !!! MERCI !!!
J'avais testé plusieurs solutions mais jamais la bonne !!!
A garder précieusement.

Excellente semaine.