Commande SQL en PHP

Bonjour,

je voudrais faire une requête SQL , PHP et récupérer la donnée dans un variable

exemple :

SELECT MAX(value) FROM historyArch WHERE cmd_id = ‹ 1162 › AND datetime > ‹ 2022-07-15 00:00:00 › AND datetime <= ‹ 2022-07-15 23:59:59 ›

la requête fonctionne bien sous Adminer …mais avec mon code !!

Merci pour votre aide.

voici mon code :

<?php $servername = "ip"; $username = "jeedom"; $password = "password"; $dbname = "jeedom"; $con = new mysqli($servername, $username, $password, $dbname); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql ="SELECT MAX(`value`) FROM historyArch WHERE cmd_id = '1162' AND `datetime` > '2022-07-15 00:00:00' AND `datetime` <= '2022-07-15 23:59:59' LIMIT 50"; $resultMax = DB::Prepare($sql, NULL, DB::FETCH_TYPE_ROW); echo $resultMax; ?>

Bonjour,

C’est une mauvaise idée d’écrire les requêtes sql directement.
Il existe des fonctions qui font déjà le travail et c’est ça qu’il faut utiliser.

Cherchez max() dans la doc https://doc.jeedom.com/fr_FR/core/4.2/scenario

Bonjour,

Merci pour ta réponse Mips…

j’ai bien essayer cela … ca fonctionne !!

maxBetween(#[Exterieur][Extérieur OUEST][Température]#,2022-07-15 00:00:00,2022-07-15 23:59:59)

le problème c’est que je voudrais récupérer la température MAX du jour mais année N-1

tous les jours et le mettre dans un virtuel …

tu aurais un indice ?

Merci.

Vous avez déjà la réponse…
Même fonction mais vous changez les dates.

Mais comment lui dire que je voudrais aujourd’hui mais une année en moins en automatique ?

hello,

plusieurs méthodes pour arriver au même résultat
maxBetween(#[Exterieur][Extérieur OUEST][Température]#, this day - 1 year midnight, tomorrow - 1 year -1 second)

je ferais un truc dans le genre, tu peux chercher sur le forum il y a plein d’exemples pour s’inspirer en cherchant « maxBetween » entre autre

Bonjour,

C’est tout con …!!!
j’étais parti sur PHP et SQL … mais la c’est vraiment trop bien …

Gros Merci a toi.

Bonjour,

Perso, j’utilise ça pour récupérer la t° moyenne du jour l’année dernière :
averageBetween(#[Jardin][Sonde][Température]#,today last year,now last year)

et pour la veille l’année dernière :
averageBetween(#[Jardin][Sonde][Température]#,yesterday last year, today last year)

Je me demande pourquoi je n’utilise jamais la température moyenne ???
le Max et le Mini …mais pourquoi pas la MOY ??
au vu des infos … je vais cogiter …

Merci encore à vous pour les infos …

@+

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.