Page 22 sur 25

Re: les records un mois donné

Posté : 09 avr. 2012, 09:36
par Tudgur
Bonjour,

Et merci beaucoup de t'être penché sur le sujet.
Mais, personnellement, même si un seuil en pourcentage parait plus "raisonnable" j'aurais préféré un seuil en absolu.
Pour un visiteur lambda, il est plus facile de comprendre "au moins 2h par jour" (par exemple) que "25% de l'ensoleillement possible".
D'autre part, le calcul se fait sur une année glissante et non pas sur l'année en cours. Puisque nos données/graphiques affichés concernent le jour courant, le mois courant, l'année courante..., il serait, à mon avis, plus intéressant d'afficher un truc du genre :
Il y a eu 54 jours de soleil depuis le début de l'année ou 54ième jour de soleil de l'année...

PS : tes 54 jours sont décomptés à partir d'octobre, date de la mise en place de la base ???

Re: les records un mois donné

Posté : 09 avr. 2012, 10:23
par webmaster
Bonjour,
Tudgur a écrit :Mais, personnellement, même si un seuil en pourcentage parait plus "raisonnable" j'aurais préféré un seuil en absolu.
Pour un visiteur lambda, il est plus facile de comprendre "au moins 2h par jour" (par exemple) que "25% de l'ensoleillement possible".
Il suffit de changer le calcul pour appliquer une simple soustraction et un seuil de deux heures.
Tudgur a écrit :Il y a eu 54 jours de soleil depuis le début de l'année ou 54ième jour de soleil de l'année...
Là j'avoue être d'accord avec toi, mais le principe était plus simple.
Il faut dans ce cas une autre approche, je regarde çà.
Tudgur a écrit : PS : tes 54 jours sont décomptés à partir d'octobre, date de la mise en place de la base ???
Non, j'ai saisi manuellement les jours supérieur à 25% d'ensoleillement depuis le début de l'année.

Re: les records un mois donné

Posté : 09 avr. 2012, 11:06
par Tudgur
webmaster a écrit :Il suffit de changer le calcul pour appliquer une simple soustraction et un seuil de deux heures.
Un truc du genre ? :

Code : Tout sélectionner

$soleil_2h=$soleil_jour-2;
if ($soleil_2h > 0) {$jour_soleil = 1;}
webmaster a écrit :... je regarde çà.
La météo d'aujourd'hui est assez propice...

Re: les records un mois donné

Posté : 09 avr. 2012, 13:07
par webmaster
Tudgur a écrit :$soleil_2h=$soleil_jour-2;
if ($soleil_2h > 0) {$jour_soleil = 1;}
Non plutôt:

Code : Tout sélectionner

$soleil_2h=$soleil_jour-2;
if ($soleil_2h >= 2) {$jour_soleil = 1;}

Re: les records un mois donné

Posté : 09 avr. 2012, 17:14
par Tudgur
Bien sûr le signe =
Mais au fait, pourquoi faire une soustraction ? On peut comparer directement l'ensoleillement de la journée avec 2 !!!

Code : Tout sélectionner

if ($soleil_jour >= 2) {$jour_soleil = 1;}

Re: les records un mois donné

Posté : 09 avr. 2012, 18:55
par webmaster
Tudgur a écrit :Mais au fait, pourquoi faire une soustraction ? On peut comparer directement l'ensoleillement de la journée avec 2 !!!
Si, tu as entièrement raison et je ne sais pas pourquoi je t'ai parlé de soustraction !

Voilà le code pour l'affichage sur l'année en cours:

Code : Tout sélectionner

<?php
$variable = '0';
if (date("L") == 0 and date("z") >= 59) {$jour = date("z") + 2;
}
else {$jour = date("z") + 1;
}
$db = mysql_connect('localhost', '**login**', '**pass**');
mysql_query("set names UTF8"); 
mysql_select_db('extremes',$db);
$sql = "SELECT * FROM mois WHERE jour_soleil='1' AND ID<='$jour'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
	$variable = $variable + 1;
    }    
mysql_close();

echo 'Il y a eu ',$variable,'jour(s) de soleil cette année.';
?>

Re: les records un mois donné

Posté : 09 avr. 2012, 21:51
par Tudgur
Oupss, erreur !

Re: les records un mois donné

Posté : 09 avr. 2012, 22:10
par Tudgur
Désolé, mais je suis un peu paumé dans tes différents post... :confused:

A la fin de mon fichier wswin_extremes.txt, j'ajoute

Code : Tout sélectionner

$soleil_jour='%sunday_d%';
Mais ensuite, dans extremes.php (qui est lancé toutes les 5min chez moi), j'écris quoi et ou ?
Il ne faut pas définir une variable comme pour les autres ?

Code : Tout sélectionner

  $heure_rafale_max=$data['heure_rafale_max'];	
  $soleil_max=$data['soleil_max'];
  $date_soleil_max=$data['date_soleil_max'];
  $jour_soleil=$data['jour_soleil'];
Et le code php que tu donnes, est-il un fichier indépendant de extremes.php ou faut-il l'intégrer à extremes.php ???
S'il est indépendant,ou placer la condition :

Code : Tout sélectionner

if ($soleil_jour >= 2.00) {$jour_soleil = 1;}

Re: les records un mois donné

Posté : 10 avr. 2012, 07:34
par webmaster
Bonjour,

Alors, pour toi car nous n'avons pas le même code, à la fin du fichier extremes.txt gnéré par WsWin

Code : Tout sélectionner

$soleil_jour='%sunday_d%';
A la fin des différents tests jour, juste avant la ligne d'écriture dans extremess.php lancé toutes les heures:

Code : Tout sélectionner

if ($soleil_jour >= 2) {$jour_soleil = 1;}
Et théoriquement sur la ligne d'écriture dans la base qui doit-étre la suivante:

Code : Tout sélectionner

...........date_soleil_max='$date_soleil_max',jour_soleil='$jour_soleil' WHERE id='$jour' ");
Et pour l'affichage à l'endroit qu'il te plaira:

Code : Tout sélectionner

<?php
$variable = '0';
if (date("L") == 0 and date("z") >= 59) {$jour = date("z") + 2;
}
else {$jour = date("z") + 1;
}
$db = mysql_connect('localhost', '**login**', '**pass**');
mysql_query("set names UTF8");
mysql_select_db('extremes',$db);
$sql = "SELECT * FROM mois WHERE jour_soleil='1' AND ID<='$jour'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
   $variable = $variable + 1;
    }   
mysql_close();

echo 'Il y a eu ',$variable,'jour(s) de soleil cette année.';
?>
Est-ce plus clair ?

Re: les records un mois donné

Posté : 10 avr. 2012, 09:00
par Tudgur
Bonjour,
webmaster a écrit :Est-ce plus clair ?
Euuuuh, pas vraiment !
Pour la condition, ici ?

Code : Tout sélectionner

........................................................................
if ($soleil_max < $wswin_ad_soleil_max) {$soleil_max=$wswin_ad_soleil_max; $date_soleil_max=$wswin_ad_date_soleil_max;}
if ($soleil_max < $wswin_soleil_max) {$soleil_max=$wswin_soleil_max; $date_soleil_max=$wswin_date_soleil_max;}
if ($soleil_jour >= 2) {$jour_soleil = 1;}

mysql_query ("UPDATE mois SET temp_min='$temp_min',date_temp_min='$date_temp_min',heure_temp_min='$heure_temp_min',temp_max='$temp_max',date_temp_max='$date_temp_max',heure_temp_max='$heure_temp_max',temp_moy='$temp_moy',date_temp_moy='$date_temp_moy',pluie_max='$pluie_max',date_pluie_max='$date_pluie_max',vent_max='$vent_max',date_vent_max='$date_vent_max',heure_vent_max='$heure_vent_max',rafale_max='$rafale_max',date_rafale_max='$date_rafale_max',heure_rafale_max='$heure_rafale_max',soleil_max='$soleil_max',date_soleil_max='$date_soleil_max' WHERE id='$jour' ");
...............................................   
Pour le code php, à l'endroit qu'il me plaira : c'est à dire, sur une page de mon site ?

Pour la base de données, j'ai rajouté une ligne à la fin de la structure, comme tu l'as indiqué.
Et le simple fait d'ouvrir la page contenant le code php va implémenter la base de données ?
Ce qui signifierait, que pour tester, je peux nommer ton code php par exemple jours_de_soleil.php et l'exécuter indépendamment de mon site ?

Bon allez, je teste bien qu'il n'y ait pas beaucoup de soleil...

Edit : test négatif !
j'ai mis un seuil d'1h pour le test.
Mon ensoleillement du jour a dépassé 1h mais le code php me donne 0jour....
jour_soleil reste à 0 dans la base de données.

Re: les records un mois donné

Posté : 10 avr. 2012, 09:49
par webmaster
Tudgur a écrit :Et le simple fait d'ouvrir la page contenant le code php va implémenter la base de données ?
Oui absolument car,
Le code suivant impute la valeur de 1 à la variable $jour_soleil si la condition est remplie.

Code : Tout sélectionner

if ($soleil_jour >= 2) {$jour_soleil = 1;}
Et est ensuite imputé à la base en même temps que le reste avec ce morceau de code ajouté au reste.
Que tu as l'air d'avoir omis !

Code : Tout sélectionner

...........date_soleil_max='$date_soleil_max',jour_soleil='$jour_soleil' WHERE id='$jour' ");
Tudgur a écrit : Ce qui signifierait, que pour tester, je peux nommer ton code php par exemple jours_de_soleil.php et l'exécuter indépendamment de mon site ?
Oui absolument et où bon te semble, mais pas indépendamment de ton site, là je ne comprends pas ?
Il faut que le code soit sur ton site chez ton hébergeur, comme pour ta page d’extrêmes.

Re: les records un mois donné

Posté : 10 avr. 2012, 10:18
par Tudgur
J'ai rajouté les éléments manquants :

Code : Tout sélectionner

...............................................
if ($soleil_jour >= 1.00) {$jour_soleil = 1;}

mysql_query ("UPDATE mois SET temp_min='$temp_min',date_temp_min='$date_temp_min',......date_soleil_max='$date_soleil_max',jour_soleil='$jour_soleil WHERE id='$jour' ");
(j'ai mis un seuil d'1h pour le test) mais la base de données n'est toujours pas inputée.

Quand je dis indépendamment de mon site, je veux dire exécuter le code php chez l'hébergeur sans qu'il soit sur une page du site.
Si j'inpute manuellement la base de donnée, ça marche...

Edit: pour ma base de données, j'ai ceci.

Re: les records un mois donné

Posté : 10 avr. 2012, 11:04
par webmaster
Quelle valeur a réellement $jour_soleil ?

Re: les records un mois donné

Posté : 10 avr. 2012, 12:35
par Tudgur
webmaster a écrit :Quelle valeur a réellement $jour_soleil ?
Là, il faut que j'aille compter jour après jour dans les fichiers mois NOAA !
Je reviens...
...51 en comptant aujourd'hui.

Re: les records un mois donné

Posté : 10 avr. 2012, 13:53
par webmaster
Non, autant pour moi, je parlais de $soleil_jour, la variable générée par wsWin.