les records un mois donné

Forum destiné aux problèmes de Tags, recherche d’une fonction, d’un calcul, Tag qui parait ne pas fonctionner, du Tag et rien que du Tag !
Répondre
Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 07 oct. 2011, 09:58

webmaster a écrit : Donc le tag qu'il te faut est %avgval_mpast[id~mm~yyyy]%
La moyenne étant calculée jusqu'à la dernière minute du dernier jour, seul l'année nous intéresse pour l'affichage comme tu le fais actuellement.
Donc pour en garder la valeur la plus haute tu vas devoir faire comme pour la température max et utiliser le même tag sur une autre variable pour la moyenne la plus basse, $moy_min, $moy_max, $mois_moy_min et $mois_moy_max.
Sauf que comme je te l'ai dit plus haut, ce tag donne la moyenne du mois jusqu'au jour courant, donc pas la moyenne d'un mois entier, ce qui fausse évidemment la comparaison !!!
Le 1er novembre on va comparer la moyenne sur 5min, puis 10, puis 15, etc... avec les autres mois de novembre.
Par exemple, actuellement la moyenne d'octobre 2011 est de 16.9°C et serait donc considérée comme la plus élevée...

C'est peut-être à cause de ces problèmes que Chriss n'avait pas intégré les moyennes dans ses tags..

Merci pour le nouveau code, je vais tester.

Je rencontre des soucis avec ma base !
J'essaye de rentrer des lignes. J'ai voulu aller jusqu'à 294 mais je me retrouve avec 16 lignes 285 et 6 lignes 286 !!!
Et je n'arrive pas à les effacer... :evil:
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 07 oct. 2011, 10:07

Je vais reprendre un peu la logique du code pour les extrêmes mensuels en se plaçant dans un contexte où il n'y a plus besoin de les comparer aux extrêmes des années précédentes (donc dans plus d'un an).

la variable $temps_min peu très bien venir imputé la variable $mois_temp_min lors du test.Il n'y a pas besoin de de faire générer à WsWin une ligne comme celle-ci:

Code : Tout sélectionner

$wswin_mois_temp_min='%minval_mpast[6~%ws_month2%~%ws_year%]%';
Si une valeur doit venir remplacer le minimum mensuel, elle passera également par un record journalier et par cette ligne:

Code : Tout sélectionner

if ($mois_temp_min > $temp_min) {$mois_temp_min=$temp_min; $mois_date_temp_min=$date_temp_min; $mois_heure_temp_min=$heure_temp_min;}
Sauf pour les extrêmes de pluie et d'insolation qui doivent effectivement être les seules que WsWin doit générer par ces lignes:

Code : Tout sélectionner

$wswin_mois_pluie_max='%rainmonth%';
$wswin_date_pluie_max='%ws_date%';
$wswin_mois_soleil_max='%sunmonth_d%';
$wswin_date_soleil_max='%ws_date%';
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 07 oct. 2011, 10:14

webmaster a écrit : la variable $temps_min peu très bien venir imputé la variable $mois_temp_min lors du test.Il n'y a pas besoin de de faire générer à WsWin une ligne comme celle-ci:

Code : Tout sélectionner

$wswin_mois_temp_min='%minval_mpast[6~%ws_month2%~%ws_year%]%';
Si une valeur doit venir remplacer le minimum mensuel, elle passera également par un record journalier et par cette ligne:

Code : Tout sélectionner

if ($mois_temp_min > $temp_min) {$mois_temp_min=$temp_min; $mois_date_temp_min=$date_temp_min; $mois_heure_temp_min=$heure_temp_min;}
OK,OK, c'est pigé.
On peut rajouter que pluie et ensoleillement sont des cumuls contrairement aux autres variables...
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 07 oct. 2011, 10:33

Tudgur a écrit : Sauf que comme je te l'ai dit plus haut, ce tag donne la moyenne du mois jusqu'au jour courant, donc pas la moyenne d'un mois entier, ce qui fausse évidemment la comparaison !!!
:
Pour le mois en cours oui obligatoirement, pour les mois passés je ne suis pas d'accord.
Ici sur les mois que j'ai comparé il y a un arrondi sur les centièmes de degrés, on peut d'ailleurs se demander se qu'ils font là....
Maintenant effectivement ramené à une période présente, tu as toutes les chances que la moyenne la plus haute soit en début de mois et la plus basse en fin, du moins pour le dernier semestre approximativement.
J'en ai vaguement parlé plus haut, je n'ai pas gardé ces valeurs car elles n'apportent à la finale rien à moins de toujours travailler sur l'année précédente afin de toujours avoir un mois plein.
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 07 oct. 2011, 10:46

webmaster a écrit : ... pour les mois passés je ne suis pas d'accord.
Evidemment, pas pour les mois passés !
webmaster a écrit : effectivement ramené à une période présente, tu as toutes les chances que la moyenne la plus haute soit en début de mois et la plus basse en fin, du moins pour le dernier semestre approximativement.
c'est ce que je disais...

J'ai toujours mon problème de lignes dans la base : en fait plein de lignes 285, plein de lignes 286, 287....294,
Il y en a 8 pages !!!
A priori la commande "effacer" ne fait qu'effacer le contenu des lignes.
Je n'ai pas trouvé de commande "supprimer"...
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 07 oct. 2011, 11:47

Difficile de te répondre, comme je te l'ai déjà dit ta console est spécifique !
Regarde peut-être sous l'ensemble des ligne plus bas dans la page s'il n'y a pas un menu déroulant permettant d'appliquer une fonction pour la sélection car tu as une case à cocher sur ta ligne.
Tu peux également essayer du modifier la ligne plutôt que de la supprimer non ?
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 07 oct. 2011, 12:30

webmaster a écrit :Tu peux également essayer du modifier la ligne plutôt que de la supprimer non ?
C'est effectivement ce que je suis en train de faire.
Avec 24 occurrences identiques pour chaque numéro de ligne...
Il me reste donc 23X7 lignes à renommer !!! :evil:

Si je veux rentrer manuellement des données dans la base (sans aucune intervention des tags wswin), par exemple l'ensoleillement le plus faible par mois, la pluvio la plus faible par mois, les moyennes les plus basses et les plus fortes par mois.... avec les années correspondantes,

suffit-il (pour la pluie) de rajouter pluie_min,date_pluie_min à cette ligne : $sql = "SELECT temp_min,date_temp_min,heure_temp_min,..... ...soleil_max,date_soleil_max FROM mois WHERE id='$mois'";
et ici :

Code : Tout sélectionner

   $mois_heure_rafale_max=$data['heure_rafale_max'];	
    $mois_soleil_max=$data['soleil_max'];
    $mois_date_soleil_max=$data['date_soleil_max'];
    $pluie_min=$data['pluie_min'];
    $date_pluie_min=$data['date_pluie_min'];
Edit : ton script pour l'affichage de l'heure ne fonctionne pas. Il donne Array:00 h
L'autre donnait 32:4 au lieu 32:04 et 156:3 au lieu de 156:30
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 07 oct. 2011, 15:35

Mince on n'a pas pas laissé beaucoup de temps aujourd'hui, il faut bien que je cotise :roll:
Oui c'est exactement !

Contrôle bien le format de l'heure.
Ce n'est pas une heure que tu as entrée manuellement ?
Et qu'elle heure devrait s'afficher que je puisse tester la même valeur ici ?
Le code est en place chez moi, je ne comprends pas.

Je repars...
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 07 oct. 2011, 16:02

Et oui, il faut bosser et cotiser !
Pense aux vieillards comme moi...
Tu as dû remarquer que j'ai la vue qui baisse et les doigts ont du mal à frapper le clavier, ce qui explique les nombreuses erreurs que j'ai pu faire !!! :lol:

Concernant l'ensoleillement, la valeur était bien une valeur calculée par wswin et "inputée" dans la base mais maintenant je l'ai mise manuellement :
156.50 (pour 156:30h en octobre 2007)
Pour le record du jour wswin me donne
$wswin_2009_soleil_max='5.18';
valeur que je retrouve dans la base mais extremes2.php me donne 5:11 h avec ton 1er script et Array:00 h avec le second.
avec le 1er script le pb n'est présent que pour une valeur du type 5.03
Pour le record mensuel, le pb existait pour la valeur "inputée" et pour celle qui maintenant a été mise manuellement.
156.50 dans la base (pour 156:30h) deviennent 156:3h. il manque donc le zéro.

Bon, il faut aussi que j'aille préparer l'apéro pour les invités...
Bonne soirée.

Edit : La base de donnée n'accepte pas 156.50 (ensoleillement) tout comme 16.0 pour une température.
Le zéro final est automatiquement enlevé.
Si je mets 156.51 ton premier script donne bien 156:31.
Ton premier script ne fonctionne donc pas pour les durées du type 156.05 et 156.5
156.05 ----> 156:3
156.5 -----> 156:3
156.51 ----> 156:31
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 08 oct. 2011, 21:14

Bonsoir,

Bon, on va essayer comme çà:
Dans la structure de ta base, tu vas changer le type des lignes afin de mieux formater les variables.
Toute les lignes qui sont en float, tu vas les mettre en décimal, (3,1)pour les températures, (5,1) pour la pression, (4,1) pour le vent et rafale, et (5,2) pour l'insolation.
Puis pour l'affichage essayer ce code:

Code : Tout sélectionner

		
echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
156.05 deviendra 156:03 h
156.5 sera dans la base 156.50 et deviendra 156:30 h
156.51 deviendra 156:30 h
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 08 oct. 2011, 22:16

Salut,

J'essaye ça demain.
Mais où rentre t-on les 3,1 / 5,1 / 4,1 ? ... Avec une virgule ? Et pour la pluie, 4,1 ?

J'ai rempli toute ma base pour les extrêmes mensuels.
Il suffit de se placer au dernier jour de chaque mois 2011 (sauf pour nov et dec, en 2010) puis de faire internet/fichiers html/ wml
Puis d'éditer (éventuellement enregistrer) le fichier extreme2.php pour chaque mois.
Il me reste à concocter un tag wswin pour la moyenne du mois précédent : pb en janvier pour inputer décembre de l'année précédente...

Un petit souci dans ma base : j'ai volontairement augmenté manuellement la vitesse_max du vent dans wswin_extremes.php pour voir si elle était inputée dans a base.
Cela a bien marché, mais impossible de revenir en arrière.
J'ai beau remettre la bonne valeur (45.1) et la bonne date dans la base, lorsque j'exécute extremes.php, ces valeurs se trouvent remplacées par celles du test (48.3). Pourtant elles ne figurent plus dans wswin_extremes.php.
Où sont elles mémorisées ???

Edit : j'ai réussi à me débarrasser du 48.3 !
En fait, il suffisait de remplacer < par > dans if ($mois_vent_max < $vent_max) pour inputer une valeur plus faible, puis remettre < et rentrer manuellement 45.1 dans la base...
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 09 oct. 2011, 20:22

Salut,
Tudgur a écrit : Mais où rentre t-on les 3,1 / 5,1 / 4,1 ? ... Avec une virgule ? Et pour la pluie, 4,1 ?
Quand tu modifies le type de ligne dans ta base, tu dois avoir une case te permettant de changer la valeur et la taille de cette dernière.
Si l'on prend l'exemple de 3,1: 3 correspond à la longueur total de ta mesure et 1 à la décimal, donc dans ce cas tu pourras mémoriser au maximum 99.9.
Tudgur a écrit : J'ai rempli toute ma base pour les extrêmes mensuels.
Je me suis servi des graphiques, ça va pas mal non plus.
Tudgur a écrit : Il me reste à concocter un tag wswin pour la moyenne du mois précédent : pb en janvier pour inputer décembre de l'année précédente...
Là, je ne comprends pas ? ? ?
Une moyenne mensuelle est déjà dans ta base ! ! !
Tudgur a écrit : Edit : j'ai réussi à me débarrasser du 48.3 !
En fait, il suffisait de remplacer < par > dans if ($mois_vent_max < $vent_max) pour inputer une valeur plus faible, puis remettre < et rentrer manuellement 45.1 dans la base...
Là je ne comprends pas non plus !
Si tu modifies directement ta base, la valeur ne peut pas réapparaitre comme ça, c'est impossible !
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 09 oct. 2011, 22:27

webmaster a écrit : Quand tu modifies le type de ligne dans ta base, tu dois avoir une case te permettant de changer la valeur et la taille de cette dernière.
Si l'on prend l'exemple de 3,1: 3 correspond à la longueur total de ta mesure et 1 à la décimal, donc dans ce cas tu pourras mémoriser au maximum 99.9.
OUi,ça j'avais compris, mais je voulais m'assurer de la case où mettre ces valeurs
webmaster a écrit :
Tudgur a écrit : Il me reste à concocter un tag wswin pour la moyenne du mois précédent : pb en janvier pour inputer décembre de l'année précédente...
Là, je ne comprends pas ? ? ?
Une moyenne mensuelle est déjà dans ta base ! ! !
Oui, mais figée, sans aucune mise à jour ! J'ai maintenant un tag de Wswin qui va permettre d'imputer la base. Sinon j'aurais dû le faire manuellement lorsqu'un record de moyenne mensuelle était battu.
webmaster a écrit :
Tudgur a écrit : Edit : j'ai réussi à me débarrasser du 48.3 !
En fait, il suffisait de remplacer < par > dans if ($mois_vent_max < $vent_max) pour inputer une valeur plus faible, puis remettre < et rentrer manuellement 45.1 dans la base...
Là je ne comprends pas non plus !
Si tu modifies directement ta base, la valeur ne peut pas réapparaitre comme ça, c'est impossible !
Et pourtant, c'est bien réel ! 10 fois j'ai remplacé le 48.3 par 45.1 dans la base et wswin_extremes.php avait la valeur 45.1. C'est pour cela que je me demande où était mémorisée cette valeur ?

Voici le tag pour la moyenne du mois précédent :

Code : Tout sélectionner

<!--moyenne du mois précédent-->%ws_delline%
	%ws_delline%%ws_setmem[1]=%ws_calc[-]=%ws_year%~1~0%%
	%ws_delline%%ws_setmem[2]=%ws_calc[-]=%ws_month2%~01~0%%
	%ws_delline%%ws_setmem[3]=%ws_compare[5]=%ws_getmem[2]%~10~0%ws_getmem[2]%~%ws_getmem[2]%%%
	%ws_delline%%ws_setmem[4]=%ws_compare[3]=%ws_getmem[3]%~00~12~%ws_getmem[3]%%%
	%ws_delline%%ws_setmem[5]=%ws_compare[3]=%ws_getmem[4]%~12~%ws_getmem[1]%~%ws_year%%%
	$wswin_moy_max_mois_prec='%avgval_mpast[2~%ws_getmem[4]%~%ws_getmem[5]%]%';
	$wswin_date_moy_max_mois_prec='%ws_getmem[5]%';
Et pour afficher d' ou de selon le mois (d'octobre / de novembre) :

Code : Tout sélectionner

//affichage de ou d
%ws_setmem[1]=%ws_comparestrx=%monthtxt%~avril~d\'~de&nbsp;%%
%ws_setmem[2]=%ws_comparestrx=%monthtxt%~août~d\'~%ws_getmem[1]%%%
%ws_comparestrx=%monthtxt%~octobre~d\'~%ws_getmem[2]%%
$tab['de_ou_d']='%ws_comparestrx=%monthtxt%~octobre~d\'~%ws_getmem[2]%%';
On peut aussi le faire en php :

Code : Tout sélectionner

$mois='%monthtxt%';
if($mois=='avril' or $mois=='août' or $mois=='octobre') {$de_ou_d='d\'';}
else {$de_ou_d='de&nbsp';}
$tab['de_ou_d'] = $de_ou_d;
Ou alors, serait-il possible de rajouter dans la base une colonne qui contiendrait d' pour les trois mois concernés et de&nbsp; pour les autres mois ?

Voici le résultat pour les extrêmes mois (sans "l'habillage" css)

Edit : ton nouveau script

Code : Tout sélectionner

echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
affiche toujours 00 pour les minutes !
156,05 --->156:00
156.50 --->156:00
Pourtant, d'après le script, tu divises les centièmes d'heure par 100 et tu multiplie par 60 pour avoir les minutes.
Pour les extrêmes jour, il donne Array:00 h (l'extrême du jour est 8.00)
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: les records un mois donné

Message par webmaster » 10 oct. 2011, 08:52

Bonjour,
Tudgur a écrit : Oui, mais figée, sans aucune mise à jour ! J'ai maintenant un tag de Wswin qui va permettre d'imputer la base. Sinon j'aurais dû le faire manuellement lorsqu'un record de moyenne mensuelle était battu.
Là nous avons un dialogue de sourd, je ne comprends pas plus.
La moyenne d'un mois précédent est obligatoirement figée puisqu'il est terminé !
Mais bon, le principal, c'est que tu es l'affichage que tu désires.
Tudgur a écrit : Ou alors, serait-il possible de rajouter dans la base une colonne qui contiendrait d' pour les trois mois concernés et de&nbsp; pour les autres mois ?
Oui bien entendu, il te suffit d'ajouter une ligne dans la table que tu ne remplie que pour les ID de 1001 à 1012 avec d ou d'.
Tudgur a écrit : Edit : ton nouveau script

Code : Tout sélectionner

echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
affiche toujours 00 pour les minutes !
156,05 --->156:00
156.50 --->156:00
Pourtant, d'après le script, tu divises les centièmes d'heure par 100 et tu multiplie par 60 pour avoir les minutes.
Pour les extrêmes jour, il donne Array:00 h (l'extrême du jour est 8.00)
Impossible,le code suivant:

Code : Tout sélectionner

		$soleil_max ='156.05';
		$soleil_max = explode(".", $soleil_max);
		echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h<br>';
		
		$soleil_max ='156.50';
		$soleil_max = explode(".", $soleil_max);
		echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
Donne ceci:

Code : Tout sélectionner

156:03 h
156:30 h 
Cordialement

Rieux

Tudgur
Participation 6
Participation 6
Messages : 1770
Enregistré le : 13 mai 2007, 16:47
Localisation : 29880 Plouguerneau
Contact :

Re: les records un mois donné

Message par Tudgur » 10 oct. 2011, 10:04

webmaster a écrit :
Tudgur a écrit : Oui, mais figée, sans aucune mise à jour ! J'ai maintenant un tag de Wswin qui va permettre d'imputer la base. Sinon j'aurais dû le faire manuellement lorsqu'un record de moyenne mensuelle était battu.
Là nous avons un dialogue de sourd, je ne comprends pas plus.
La moyenne d'un mois précédent est obligatoirement figée puisqu'il est terminé !
Mais bon, le principal, c'est que tu es l'affichage que tu désires.
La moyenne du mois précédent n'est pas figée
Aujourd'hui, au 10 octobre, je ne peux pas inputée la moyenne de ce mois puisqu'il n'est pas fini ! J'input donc la moyenne de septembre si elle est plus élevée que celle présente dans a base.(bien sûr cette dernière est figée pendant 1 mois)
Par contre,au 1er novembre, je vais inputer la moyenne d'octobre 2011 si elle est plus élevée que celle qui est actuellement dans la base.
Et ainsi de suite au 1er de chaque mois...
Est-ce plus clair ?
webmaster a écrit :
Tudgur a écrit : Edit : ton nouveau script

Code : Tout sélectionner

echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
affiche toujours 00 pour les minutes !
156,05 --->156:00
156.50 --->156:00
Pourtant, d'après le script, tu divises les centièmes d'heure par 100 et tu multiplie par 60 pour avoir les minutes.
Pour les extrêmes jour, il donne Array:00 h (l'extrême du jour est 8.00)
Impossible,le code suivant:

Code : Tout sélectionner

		$soleil_max ='156.05';
		$soleil_max = explode(".", $soleil_max);
		echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h<br>';
		
		$soleil_max ='156.50';
		$soleil_max = explode(".", $soleil_max);
		echo $soleil_max[0],':',sprintf("%02d",($soleil_max[1]/100)*60),' h';
Donne ceci:

Code : Tout sélectionner

156:03 h
156:30 h 
Quel âne, j'ai bêtement recopié ton morceau de script en oubliant $soleil_max = explode(".", $soleil_max); !!!
Je re-re-reteste....
Cordialement.

Tudgur
http://meteo-plouguerneau.fr" onclick="window.open(this.href);return false;

Répondre