Tri des Valeurs pour afficher le graphique

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highcharts, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: Tri des Valeurs pour afficher le graphique

Message par Météo Villarzel » 18 mars 2015, 23:34

Salut,
Je pense que c'est ton titre qui à mis le doute dans ce que tu voulais faire (tri des valeurs) !!!

Donc si tu veux faire (simplement) un graphique avec tes données des dernières 24h, pas de problèmes, mais on t'a déjà donné la solution :roll:

J'ai aussi une base de données avec un champ Datetime, c'est pour mes valeurs de ma PAC et de mes panneaux solaires, un exemple de graphique
http://www.boock.ch/meteo/graphiques_dy ... detail.php

Ma BDD est identique à la tienne, sauf les noms des colonnes
sql1.jpg
Pour pouvoir l'utiliser avec Highcharts, j'ai créé une vue de cette table avec un colonne supplémentaire de type tstamp
je l'ai nommée sondes2, mais peut importe le nom que tu vas lui donner
J'en ai aussi profité pour modifier le nom des colonnes qui correspondaient au nom de mes sondes 1-wire mais C30044322ACFF28 c'est pas très parlant et pas facile à retenir :lol:
sql2.jpg
Pour créer cette vue, tu vas sur ta table, puis dans SQL et tu tapes cette requête

CREATE VIEW le_nom_que_tu_veux AS SELECT (UNIX_TIMESTAMP(datetime))as tstamp, T_ext,T_dep,T_ret,T_ret2,T_cons,T_ecs,T_cecs,PLUS TES AUTRE COLONNES, FROM le_nom_de_ta_table;
sql3.jpg
J'espère ne pas avoir fait d'erreur, je ne suis pas un crack en BDD, mais si il y a une erreur tu auras simplement un message d'erreur, pas de danger pour ta table.

Après tu peux tracer tes graphiques à partir de cette vue.

Par exemple

<?php
// appel du script de connexion
require("mysqli_connect.php");
// On récupère le timestamp du dernier enregistrement
$sql="select max(tstamp) from data";
$query = mysqli_query($conn,$sql);
$list=mysqli_fetch_array($query);

// On détermine le stop et le start de façon à récupérer dans la prochaine requête que les données des dernières xx heures
$stop=$list[0];
$start=$stop-(86400*2);

// Récupération des données sur les dernières 24 heures avec un tri ascendant sur le timestamp
$sql = "SELECT tstamp, outdoortemperature, windchill, dewpoint, outdoorheatindex FROM data where tstamp >= '$start' and tstamp <= '$stop' ORDER BY 1";
$query = mysqli_query($conn,$sql);
$i=0;
while ($list = mysqli_fetch_array($query)) {
if (date("I",time())==0) { // c'est un "i" majuscule
$dtime[$i]=($list['tstamp']+3600)*1000;
$minuit=(mktime(0 ,0 ,0 , date("n"), date("j"), date("Y"))+3600)*1000;
}
else {
$dtime[$i]=($list['tstamp']+7200)*1000;
$minuit=(mktime(0 ,0 ,0 , date("n"), date("j"), date("Y"))+7200)*1000;
} //Date
$dtemp[$i]=$list['outdoortemperature']*1; // Température extérieure
$dwin[$i]=$list['windchill']*1; // Facteur vent
$ddew[$i]=$list['dewpoint']*1; // Point de rosée
$dhea[$i]=$list['outdoorheatindex']*1; // Index chaleur

$i++;
}
$debut= $dtime[0];


?>

Avec évidement le nom de ta vue et le nom de tes colonnes.
Tu peux prendre un graphique que j'ai mis à disposition avec mon tutoriel
http://www.boock.ch/meteo/tuto_mysql_hi ... rts_01.php

Voilà.

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Répondre