<?php
define('DB_HOST' , 'localhost'); // l'adresse de mysql
define('DB_NAME' , 'ma_BDD'); // le nom de la base de donnée
define('DB_USER' , 'XXXX'); // votre login de la base de donnée
define('DB_PASS' , 'YYYYYYYYY'); // votre mot de passe
try {
// Connexion à la base de donnée
$PDO = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$limit = 6; // Nombre d'heure (intervalle des moyennes)
// la requête SQL sur la table nommé data :
// on formate la date (on ne garde que l'heure) dans une colonne moyheure,
// on arrondie au dixième la moyenne de temp dans une colonne TempM et de huùi dans une colonne HumiM
// à partir de maintenant dans la limite de 6 heure (variable $limit)
// grouper par mois jour heure en ordre décroissant
$sql = 'SELECT DATE_FORMAT(date_heure,"%d-%m-%Y %Hh") as moyheure, ROUND(AVG(temp),1) as TempM, ROUND(AVG(humi),1) as HumiM FROM data
WHERE date_heure < NOW() AND date_heure > DATE_SUB(NOW(), INTERVAL '.$limit.' HOUR)
GROUP BY MONTH(date_heure), DAY(date_heure), HOUR(date_heure) DESC' ;
// On interroge la base de donnée
$result = $PDO->query($sql);
// récupère toutes les lignes dans le tableau $rows, par défaut PDO::FETCH_BOTH est utilisé
$rows = $result->fetchAll();
// sinon, on récupère l'erreur
} catch(PDOException $e) {
// on affiche l'erreur
echo 'Échec de la connexion : ' . $e->getMessage();
}
// on ferme la connexion à la base de donnée
$PDO = null;
// pour chaque ligne du tableau $rows on affiche les datas
foreach($rows as $row) {
Echo 'Date et heure : '.$row["moyheure"].' Température : '.$row["TempM"].' °C Humidité : '.$row["HumiM"].' % <br/>';
}
?>