v1.7.7: Fix 'Plus recente' = 'not connected' sur page database

Les requetes MIN/MAX(timestamp) sur les tables capteur etaient
faussees par les lignes accumulees pendant le bug RTC (v1.7.4):
la chaine 'not connected' > toute date ISO en tri ASCII, donc
MAX() retournait 'not connected' au lieu de la vraie date la
plus recente.

Fix: WHERE timestamp != 'not connected' dans les requetes MIN/MAX.
Les lignes 'not connected' restent en base, elles sont juste
ignorees pour le calcul des bornes temporelles affichees.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
PaulVua
2026-05-12 17:47:27 +02:00
parent d34b029d48
commit 5d7aac38e1
3 changed files with 21 additions and 3 deletions

View File

@@ -675,8 +675,11 @@ if ($type == "db_table_stats") {
$oldest = null;
$newest = null;
if ($count > 0) {
$oldestResult = $db->query("SELECT MIN(timestamp) as ts FROM $tableName")->fetch();
$newestResult = $db->query("SELECT MAX(timestamp) as ts FROM $tableName")->fetch();
// Exclude 'not connected' rows: these are sensor readings collected
// while the RTC service was down. They are lexicographically > real
// timestamps so they corrupt MAX() (and MIN() too, less obviously).
$oldestResult = $db->query("SELECT MIN(timestamp) as ts FROM $tableName WHERE timestamp != 'not connected'")->fetch();
$newestResult = $db->query("SELECT MAX(timestamp) as ts FROM $tableName WHERE timestamp != 'not connected'")->fetch();
$oldest = $oldestResult['ts'];
$newest = $newestResult['ts'];
}