Forum GraphWeather

Forum d'aide GraphWeather
Nous sommes actuellement le Ven Mars 29, 2024 6:01 am

Le fuseau horaire est UTC+1 heure




Publier un nouveau sujet Répondre au sujet  [ 34 message(s) ]  Aller vers la page Précédent  1, 2, 3  Suivant
Auteur Message
 Sujet du message:
MessagePublié: Mar Oct 16, 2007 11:25 am 
yves a écrit:
Bonjour Tout le monde,

J'ai mis un peu de temps a voir comment fonctionner jpgraph. Mais c'est une bibliotheque qui permet de faire pas mal de truc sympa.
Je me suis donc permis de faire quelque modif sur le source mis a dispo par Titoine, et j'ai crée un nouveau script qui permet de sortir les stats annuelles.

Vous pouvez voir un resultat ici :
http://meteo.rouen.free.fr/stat.html

Si vous le souhaitez je peux vous faire parvenir ce script.

A +

Yves

Compliments!

It's really a great work!!

I also have PHP Graphweather and I should interested to your yearly statistics script, only for personal, no profit, scope. I very appreciate if you could send me your script.

I'm also trying to make more readable monthly statistics, that in the standard php graphweather template are not very readable with 30 days.

Thank you very much
Marco
Italy


Haut
  
Répondre en citant  
 Sujet du message: Re:
MessagePublié: Jeu Jan 08, 2009 6:16 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
yves a écrit:
Bonjour Siegfried,

Enfin pour determiner les min et max de la période sélectionner voila ce que j'ai ajouter dans le fichier graph.php :

.........
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];//press
$y2data[$i]=$list[1];//humi
$y3data[$i]=$list[2];//temp
$y4data[$i]=$list[3];//pt rose
$y5data[$i]=$list[4];//fact vent
$count[round($list[5])]=$count[round($list[5])]+1;//dir vent
$y6data[$i]=$list[6];//vit vent
$y7data[$i]=$list[7];//pluie


switch($MYSQL_TIMESTAMP)
{
case 0 :
$timestamp[$i]=$list[8];
break;
default: case 1:
sscanf($list[8],"%4d%2d%2d%2d%2d%2d",$a_year,$a_month,$a_day,$a_hours,$a_minutes,$a_seconds);
$timestamp[$i]=intval(mktime($a_hours,$a_minutes,$a_seconds,$a_month,$a_day,$a_year,-1));
break;
}

/* AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */
if ($y1data[$i] > $y1max)
{
$y1max = $y1data[$i];
$y1tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y1data[$i] < $y1min)
{
$y1min = $y1data[$i];
$y1tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] > $y2max)
{
$y2max = $y2data[$i];
$y2tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] < $y2min)
{
$y2min = $y2data[$i];
$y2tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] > $y3max)
{
$y3max = $y3data[$i];
$y3tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] < $y3min)
{
$y3min = $y3data[$i];
$y3tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] > $y4max)
{
$y4max = $y4data[$i];
$y4tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] < $y4min)
{
$y4min = $y4data[$i];
$y4tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] > $y6max)
{
$y6max = $y6data[$i];
$y6tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] < $y6min)
{
$y6min = $y6data[$i];
$y6tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] > $y7max)
{
$y7max = $y7data[$i];
$y7tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] < $y7min)
{
$y7min = $y7data[$i];
$y7tmin =date("H:i d/m",$timestamp[$i]);
}

$i++;
}


.......
/* FIN AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */




.......

/* AFFICHAGE DES RESULTATS */

$MINMAX=sprintf(" .::: Min / Max :::.n");
$MINMAX.=$char_width;
$MINMAX.= sprintf("Pression : %.1f (%s) / %.1f (%s)n",$y1min,$y1tmin,$y1max,$y1tmax);
$MINMAX.=sprintf("Humidité : %d (%s) / %d (%s)n",$y2min,$y2tmin,$y2max,$y2tmax);
$MINMAX.=sprintf("Température : %.1f (%s) / %.1f (%s)n",$y3min,$y3tmin,$y3max,$y3tmax);
$MINMAX.=sprintf("Point de rosé : %.1f (%s) / %.1f (%s)n",$y4min,$y4tmin,$y4max,$y4tmax);
$MINMAX.=sprintf("Facteur de vent : %.1f / %.1f n",$y5min,$y5max);
$MINMAX.=sprintf("Vent Max : %.1f km/hn",$y6max);
$MINMAX.=sprintf("Total pluie : %.1f mmn",$total_rainfall);

.........


Voila si tu as des questions n'hesite pas.

Au fait ton site est super chouette , son look est vraiment bien.

A +

Yves

Bonjour,

J'ai essayé ce code, il y a comme un problème. Certes je suis le p'tit nouveau du php, mais je ne vois pas comment il est possible de faire cette comparaison : if ($y1data[$i] > $y1max) (et les autres) alors que $y1max n'a pas encore été déclaré, donc n'existe pas encore. :?:
Je ne suis à priori pas le seul puisqu' APACHE me le dit environ 200 fois par passe dans la log.

Chez toi Yves, j'ai vu que l'affichage était correct, peux-tu m'expliquer ce mystère.
J'ai dû m'y prendre comme un gland !! :mrgreen:

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re:
MessagePublié: Jeu Jan 08, 2009 6:16 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
yves a écrit:
Bonjour Siegfried,

Enfin pour determiner les min et max de la période sélectionner voila ce que j'ai ajouter dans le fichier graph.php :

.........
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];//press
$y2data[$i]=$list[1];//humi
$y3data[$i]=$list[2];//temp
$y4data[$i]=$list[3];//pt rose
$y5data[$i]=$list[4];//fact vent
$count[round($list[5])]=$count[round($list[5])]+1;//dir vent
$y6data[$i]=$list[6];//vit vent
$y7data[$i]=$list[7];//pluie


switch($MYSQL_TIMESTAMP)
{
case 0 :
$timestamp[$i]=$list[8];
break;
default: case 1:
sscanf($list[8],"%4d%2d%2d%2d%2d%2d",$a_year,$a_month,$a_day,$a_hours,$a_minutes,$a_seconds);
$timestamp[$i]=intval(mktime($a_hours,$a_minutes,$a_seconds,$a_month,$a_day,$a_year,-1));
break;
}

/* AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */
if ($y1data[$i] > $y1max)
{
$y1max = $y1data[$i];
$y1tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y1data[$i] < $y1min)
{
$y1min = $y1data[$i];
$y1tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] > $y2max)
{
$y2max = $y2data[$i];
$y2tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y2data[$i] < $y2min)
{
$y2min = $y2data[$i];
$y2tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] > $y3max)
{
$y3max = $y3data[$i];
$y3tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y3data[$i] < $y3min)
{
$y3min = $y3data[$i];
$y3tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] > $y4max)
{
$y4max = $y4data[$i];
$y4tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y4data[$i] < $y4min)
{
$y4min = $y4data[$i];
$y4tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] > $y6max)
{
$y6max = $y6data[$i];
$y6tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y6data[$i] < $y6min)
{
$y6min = $y6data[$i];
$y6tmin =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] > $y7max)
{
$y7max = $y7data[$i];
$y7tmax =date("H:i d/m",$timestamp[$i]);
}
if ($y7data[$i] < $y7min)
{
$y7min = $y7data[$i];
$y7tmin =date("H:i d/m",$timestamp[$i]);
}

$i++;
}


.......
/* FIN AJOUT DU CODE SUIVANT POUR AFFICHER LES MINI ET MAXI SUR LA PERIODE SELECTIONNEE */




.......

/* AFFICHAGE DES RESULTATS */

$MINMAX=sprintf(" .::: Min / Max :::.n");
$MINMAX.=$char_width;
$MINMAX.= sprintf("Pression : %.1f (%s) / %.1f (%s)n",$y1min,$y1tmin,$y1max,$y1tmax);
$MINMAX.=sprintf("Humidité : %d (%s) / %d (%s)n",$y2min,$y2tmin,$y2max,$y2tmax);
$MINMAX.=sprintf("Température : %.1f (%s) / %.1f (%s)n",$y3min,$y3tmin,$y3max,$y3tmax);
$MINMAX.=sprintf("Point de rosé : %.1f (%s) / %.1f (%s)n",$y4min,$y4tmin,$y4max,$y4tmax);
$MINMAX.=sprintf("Facteur de vent : %.1f / %.1f n",$y5min,$y5max);
$MINMAX.=sprintf("Vent Max : %.1f km/hn",$y6max);
$MINMAX.=sprintf("Total pluie : %.1f mmn",$total_rainfall);

.........


Voila si tu as des questions n'hesite pas.

Au fait ton site est super chouette , son look est vraiment bien.

A +

Yves

Bonjour,

J'ai essayé ce code, il y a comme un problème. Certes je suis le p'tit nouveau du php, mais je ne vois pas comment il est possible de faire cette comparaison : if ($y1data[$i] > $y1max) (et les autres) alors que $y1max n'a pas encore été déclaré, donc n'existe pas encore. :?:
Je ne suis à priori pas le seul puisqu' APACHE me le dit environ 200 fois par passe dans la log.

Chez toi Yves, j'ai vu que l'affichage était correct, peux-tu m'expliquer ce mystère.
J'ai dû m'y prendre comme un gland !! :mrgreen:

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Jeu Jan 08, 2009 9:38 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Bonsoir,
le calcul par itération est intéressant mais lent,
une idée :


$sql="SELECT`abs_pressure`,`outdoor_humidity`,`outdoor_temp`,`outdoor_dew_point`,`wind_chill`,`wind_direction`,`wind_speed`,`total_rainfall`,`timestamp` FROM $DATABASE WHERE timestamp<='$stop' AND timestamp>='$start'";
$query=mysql_query($sql) or die ("Erreur SQL : ".mysql_error() );

for ($i=0;$i<16;$i++) $count[$i]=0;
$i=0;
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];
$y2data[$i]=$list[1];
$y3data[$i]=$list[2];
$y4data[$i]=$list[3];
$y5data[$i]=$list[4];
$count[$list[5]]=$count[$list[5]]+1;
$y6data[$i]=$list[6];
$y7data[$i]=$list[7];
//$timestamp[$i]=$list[8];



switch($MYSQL_TIMESTAMP)
{// remplissage de l'array timestamp
case 0 :
$timestamp[$i]=$list[8];
break;
default: case 1:
sscanf($list[8],"%4d%2d%2d%2d%2d%2d",$a_year,$a_month,$a_day,$a_hours,$a_minutes,$a_seconds);
$timestamp[$i]=intval(mktime($a_hours,$a_minutes,$a_seconds,$a_month,$a_day,$a_year,-1));
break;
}

$i++;
}


array_multisort($y1data, $timestamp); // on trie en ordre croissant $y1data.
$y1min=$y1data[0];//En pos 0 de l'array on a le mini.
$y1tmin=$timestamp[0];// Comme timestamp est ordonnée idem on a l'heure du mini
$y1max=$y1data[$i]; // le max est en dernière position de l'array, $i devrait être l'index de la dernière pos si pas sûr :$i=count($timestamp)-1;
$y1tmax=$timestamp[$i];
array_multisort($y2data, $timestamp);
$y2min=$y2data[0];
$y2tmin=$timestamp[0];
$y2max=$y2data[$i];
$y12tmax=$timestamp[$i];
array_multisort($y3data, $timestamp);
$y3min=$y3data[0];
$y3tmin=$timestamp[0];
$y3max=$y3data[$i];
$y3tmax=$timestamp[$i];
array_multisort($y4data, $timestamp);
$y4min=$y4data[0];
$y4tmin=$timestamp[0];
$y4max=$y4data[$i];
$y4tmax=$timestamp[$i];
array_multisort($y5data, $timestamp);
$y5min=$y5data[0];
$y5tmin=$timestamp[0];
$y5max=$y5data[$i];
$y5tmax=$timestamp[$i];
array_multisort($y6data, $timestamp);
$y6min=$y6data[0];
$y6tmin=$timestamp[0];
$y6max=$y6data[$i];
$y6tmax=$timestamp[$i];
array_multisort($y7data, $timestamp);
$y7min=$y7data[0];
$y7tmin=$timestamp[0];
$y7max=$y7data[$i];
$y7tmax=$timestamp[$i];
// la suite...


Je n'ai pas la possibilité de tester, donc considérez cela comme une idée mais pas plus ! :idea:

Jean


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Ven Jan 09, 2009 8:30 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
Bonjour Jean,

Je te remercie pour ta réponse, je vais essayer de mettre cela en place.
Je te tiens au courant de la réussite ou de l'échec du code.

Encore merci !

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Ven Jan 09, 2009 9:06 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Ce sera sympa,
Merci

_________________
Jean

Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR

http://meteoserignan.ddns.net
Image
"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Ven Jan 09, 2009 6:25 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
Jean,

L'idée de faire un tri afin de déterminer exactement les min et les max ainsi que leur timestamp respectif, type de donnée par type de donnée semblait bien allèchante. :(

Mais enfin après quelques minutes, j'ai enfin vu les jours et heures s'afficher comme je le souhaitais. :mrgreen:

Comme tu l'as lu le php et moi, on vient juste de faire connaissance, alors la fonction array_multisort j'étais pas à la veille de l'utiliser.

Ce qu'il faut quand même savoir, c'est que, dès que les variables min et max (donnée et temps) sont déclarées(déterminées), il faut refaire le tri inverse array_multisort($timestamp, $data) sinon dans le graphique les données restent triées sur leur valeurs ascendantes et non sur le timestamp.

Dans le code d'Yves il y avait aussi un problème au niveau de la variable $MYSQL_TIMESTAMP au niveau du switch, variable qui n'est pas déclarée ce qui ajoute une ligne dans la log erreur d'Apache chaque fois que la page est appelée. J'ai viré le $ et collé une paire de double quotes devant et derrière.
Ca marche et la log reste vierge.

Ca donne ça :

$sql="SELECT `rel_pressure`,`outdoor_humidity`,`outdoor_temp`,`outdoor_dew_point`,`wind_chill`,`wind_direction`,`wind_speed`,`total_rainfall`,`outdoor_humidex`,`timestamp` FROM $DATABASE WHERE timestamp<='$stop' AND timestamp>='$start' order by timestamp";
$query=mysql_query($sql) or die ("Erreur SQL : ".mysql_error() );

for ($i=0;$i<16;$i++) $count[$i]=0;
$i=0;
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];//Pression
$y2data[$i]=$list[1];//Humidité
$y3data[$i]=$list[2];//Température Ext
$y4data[$i]=$list[3];//Point de Rosée
$y5data[$i]=$list[4];//Facteur Vent
$count[$list[5]]=$count[$list[5]]+1;//Direction Vent
$y6data[$i]=$list[6];//Vitesse Vent
$y7data[$i]=$list[7];//Pluie
$y8data[$i]=$list[8];//Humidex

switch("MYSQL_TIMESTAMP")
{
case 0 :
$timestamp[$i]=$list[9];
break;
default: case 1:
sscanf($list[9],"%4d%2d%2d%2d%2d%2d",$a_year,$a_month,$a_day,$a_hours,$a_minutes,$a_seconds);
$timestamp[$i]=intval(mktime($a_hours,$a_minutes,$a_seconds,$a_month,$a_day,$a_year,-1));
break;
}

array_multisort($y1data, $timestamp); // On trie en ordre croissant $y1data.
$y1min=$y1data[0]; // En pos 0 de l'array on a le mini.
$y1tmin=date("j/m à H\hi",$timestamp[0]); // Comme timestamp est ordonnée idem on a l'heure du mini
$i=count($timestamp)-1; // Le max est en dernière position de l'array, on ddétermine sa valeur
$y1max=$y1data[$i]; // On a le max de la donnée avec l'index
$y1tmax=date("j/m à H\hi",$timestamp[$i]);// Et ses jours et heures avec la meme position de l'index
array_multisort($timestamp, $y1data); // Ne pas oublier de rétablir l'ordre initial

array_multisort($y2data, $timestamp);
$y2min=$y2data[0];
$y2tmin=date("j/m à H\hi",$timestamp[0]);
$i=count($timestamp)-1;
$y2max=$y2data[$i];
$y2tmax=date("j/m à H\hi",$timestamp[$i]);
array_multisort($timestamp, $y2data);
// ...ainsi de suite

Un petit défaut que j'ai constaté, sans doute dû à mon ordi qui tourne 24h/24 et 7j/7 et qui doit surtout manquer de puissance (Pentium IV 2.4 Go, 1Go de ram) c'est que pour des graphiques sur une durée supérieure à 10 jours, ca devient assez longuet, 180 jours ça passe encore mais ...c'est long, quant à 365 jours ca tourne à plus de vingt secondes !! Et encore il me manque plus d'un mois puisque la station est démarrée depuis le 16/02/2008. Pas fantastiques comme temps de réponses.

Je te remercie une nouvelle fois pour tes précieux conseils

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Ven Jan 09, 2009 9:50 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
mordykuss a écrit:
Ce qu'il faut quand même savoir, c'est que, dès que les variables min et max (donnée et temps) sont déclarées(déterminées), il faut refaire le tri inverse array_multisort($timestamp, $data) sinon dans le graphique les données restent triées sur leur valeurs ascendantes et non sur le timestamp.


Bonsoir Jean Michel,
plutôt que de faire un multisort à nouveau, tu pourrais essayer de repositionner le curseur en tête de l'array $query et recharger tes yXdata à la fin de tes maxi/mini
Cela devrait être moins consommateur que les multisort's renversés. mais c'est à voir ...
Tu as effectivement une faiblesse sur ta machine au niveau de la taille mémoire, le double serait pas mal et ça ne doit pas être trop cher !


mysql_data_seek($query,0);
for ($i=0;$i<16;$i++) $count[$i]=0; // je n'ai pas vu à quoi ça sert, en fait je n'ai pas cherché à comprendre
$i=0;
while ($list=mysql_fetch_array($query))
{
$y1data[$i]=$list[0];//Pression
$y2data[$i]=$list[1];//Humidité
$y3data[$i]=$list[2];//Température Ext
$y4data[$i]=$list[3];//Point de Rosée
$y5data[$i]=$list[4];//Facteur Vent
$count[$list[5]]=$count[$list[5]]+1;//Direction Vent
$y6data[$i]=$list[6];//Vitesse Vent
$y7data[$i]=$list[7];//Pluie
$y8data[$i]=$list[8];//Humidex
$i++;
}


Tu peux essayer de voir si c'est plus rapide sur des gros volumes de données

Cordialement et bonne soirée.

_________________
Jean

Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR

http://meteoserignan.ddns.net
Image
"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Sam Jan 10, 2009 10:39 am 
Hors-ligne
Membre

Inscription : Sam Sep 30, 2006 9:48 pm
Message(s) : 26
Localisation : rouen
Bonjour à tous et bonne année !!!

Je ne suis pas forcement un pro en php. Et je suis d'accord avec vous que la méthode utilisée pour déterminer les min et max est un peu basic. Mais mes connaissances sur les requettes SQL sont elles aussi un peu limité. Cela dit le nombre d'enregistrement a traiter n'est pas très importante.
Je vous mets à dispo mon code source complet du fichier graph.php qui est actuellement utilisé sur mon site. http://meteo.rouen.free.fr/graph.zip

La méthode proposé par Jean me parait intéressante, j'esserais de la tester.

Yves

_________________
http://meteo.rouen.free.fr/


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Sam Jan 10, 2009 11:42 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Bonjour Yves, bonjour à tous,
yves a écrit:
Bonjour à tous et bonne année !!!

Je ne suis pas forcement un pro en php. Et je suis d'accord avec vous que la méthode utilisée pour déterminer les min et max est un peu basic. Mais mes connaissances sur les requettes SQL sont elles aussi un peu limité. Cela dit le nombre d'enregistrement a traiter n'est pas très importante.
Je vous mets à dispo mon code source complet du fichier graph.php qui est actuellement utilisé sur mon site. http://meteo.rouen.free.fr/graph.zip

La méthode proposé par Jean me parait intéressante, j'essaierais de la tester.

Yves

Je ne suis pas non plus un pro du PHP, mais par expérience, je sais que les calculs par itération comme tu le fait pour les mini maxi sont beaucoup moins rapides et consomment plus de ressources par rapport aux fonctions internes de PHP.
C'est d'ailleurs ton fichier qui a servi de base à notre discussion actuelle, et sur lequel j'ai suggéré de passer à une fonction intégrée comme multisort.
La seconde suggestion (seconde partie de cette discussion) est qu'il est peut-être plus rapide de déplacer un pointeur et de recharger des arrays que de faire de multiples multisorts, mais là je ne suis pas sûr. Je pense malgré tout que cela doit limiter l'impact mémoire, (c'est ce qui semble le plus faire défaut sur la machine de Jean-Michel !)

Les résultats de vos tests à tous seront intéressants pour savoir quelles techniques utiliser pour améliorer certaines performances des scripts PHP. (la partie SQL -tous moteurs confondus- n'est pas, elle, réellement bloquante : pour la plupart d'entre nous, nous n'utilisons même pas 10% de la capacité standard de travail)
Bonne journée à tous

_________________
Jean

Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR

http://meteoserignan.ddns.net
Image
"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Dim Jan 11, 2009 4:55 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
Bonjour Jean,

J'ai testé ton code. Effectivement, on divise le temps presque par 3, ce qui est logique puisqu'on supprime 6 tris (8,xx au lieu de 21,xx).
Par contre ce qui est surprenant, c'est qu'il ne tient absolument pas compte du repositionement du curseur au début de l'array, il a l'air de conserver l'ordre du dernier tri :?:

Bon c'est pas grave, c'est pas tout le temps qu'on interroge sur 365 jours... J'ai commandé sur ebay 2 barrettes d'un Go chacune pour 25€ port compris, ça ira plus vite!

Bon maintenant va falloir que je trouve un truc pour charger ma base en automatique, parce que faut avouer que si c'est effectivement efficace d'avoir un bouton "update" sur une page web, encore faut-il que quelqu'un régulièrement fasse un petit clic dessus. :mrgreen:

Avec tous mes remerciements

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Dim Jan 11, 2009 7:19 pm 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Salut Jean-Michel,

peux-tu préciser

mordykuss a écrit:
Bon maintenant va falloir que je trouve un truc pour charger ma base en automatique, parce que faut avouer que si c'est effectivement efficace d'avoir un bouton "update" sur une page web, encore faut-il que quelqu'un régulièrement fasse un petit clic dessus. :mrgreen:

quelle station et quel logiciel de contrôle

Jean


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Lun Jan 12, 2009 6:51 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Mars 25, 2008 12:01 pm
Message(s) : 22
Localisation : Lagny-sur-Marne (77) France
Bonjour Jean,

Ma station est une ws2350 (bourrée de bugs) et le pgm associéest Heavy weather.
Ce pgm alimente un fichier .dat et c'est à partir de ce .dat que je recharge ma database en passant par une page php.
Bon ça marche, mais il faut se connecter de temps en temps pour mettre à jour, ca c'est pas top.

Voilà tu sais tout.

_________________
Bien amicalement,
Jean-Michel

Vantage Pro2+ / Station auxiliaire agricole / Weatherlink / Weather Display / Virtual VP / GraphWeather 3.0.28 / W10-64

http://toutletempslaniaque.net
Image


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Lun Jan 12, 2009 7:05 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Bonjour Jean-Michel,
j'ai compris, je regarde ça de plus près car j'ai peut-être une solution.
Envoie moi un morceau de ton fichier heavyweather (history.dat je suppose)
Bonne journée
Jean


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Template Graphweather Php
MessagePublié: Lun Jan 12, 2009 7:33 am 
Hors-ligne
Membre
Avatar de l’utilisateur

Inscription : Mar Août 22, 2006 8:38 am
Message(s) : 3143
Localisation : 34410 Sérignan - Languedoc
Jean-Michel,
tu as aussi la possibilité de créer une tâche planifiée toutes les 10 min par exemple
C:\wamp\bin\php\php5.2.5\php.exe d:\html\climatovarx.php
A démarrer dans :
C:\wamp\bin\php\php5.2.5
Avec naturellement tes propres paramètres.
Tu ne mets aucun accès écran (html ...), à la rigueur si nécessaire un meta de code de caractères utf-8 ou iso8859-1 ...
Tu n'as plus à appuyer sur les boutons !

_________________
Jean

Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR

http://meteoserignan.ddns.net
Image
"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"


Dernière édition par jturlier le Lun Jan 12, 2009 3:20 pm, édité 1 fois.

Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 34 message(s) ]  Aller vers la page Précédent  1, 2, 3  Suivant

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
POWERED_BY
Traduction et support en françaisHébergement de site