Page 7 sur 25

Re: les records un mois donné

Posté : 05 oct. 2011, 13:44
par webmaster
Tudgur a écrit :Il n'y a pas un petit soucis là ?
Entre les deux lignes, donc après mysql_query et avant avant mysql_close ?
Oui exactement.
Tudgur a écrit : Alors avant ou après ?
mysql_query ("UPDATE est la partie qui écrit dans la base après les test, comme pour la partie jour.
Tudgurr a écrit : Tu veux dire que tu fais tous les extrêmes de 2006 (temp max, temp min, pression max, pression min, vent max, etc ), puis ceux de 2007... ?
Et oui, pas le choix pendant un an !

Re: les records un mois donné

Posté : 05 oct. 2011, 14:26
par Tudgur
Je crois que tu n'as pas saisi ce que je voulais dire.
Dans ton post précédent tu demandes de placer les comparaisons mensuelles entre mysql_query et mysql_close, donc après mysql_query mais dans ton exemple, juste après, tu les places avant mysql_query !!!
Pour la partie faite hier, extrêmes du jour, j'ai placé les comparaisons avant mysql_query et cela à l'air de fonctionner. Alors, pour les extrês du mois, c'est différent ? Avant ou après mysql_query ?

Sinon la proposition que tu faisais, pour ne pas s’emmêler les pinceaux, c'est de faire d'abord tous les extrêmes de 2006, jour et mois, puis ceux de 2007, etc.. C'est bien cela ?

Re: les records un mois donné

Posté : 05 oct. 2011, 14:55
par webmaster
Ok, je crois comprendre que le fait qu'il ait deux lignes d'enregistrements de données perturbe la compréhension.
Il faut placer les tests mensuels après l'enregistrement des données jour mais avant la ligne d’enregistrement des données mois comme ci-dessous.

Code : Tout sélectionner

<?php
if (date("L") == 1 and date("z") >= 60) {$jour = date("z") + 1;
}
elseif (date("L") == 0 and date("z") >= 60) {$jour = date("z") + 2;
}
$mois=(1000 + date("n"));
$db = mysql_connect('HOST', 'IDENTIFIANT', 'MOT DE PASSE');
mysql_query("set names UTF8");
mysql_select_db('NON DE LA BASE DE DONNEES',$db);
$sql = "SELECT temp_min,date_temp_min,heure_temp_min FROM NOM DE LA TABLE WHERE id='$jour'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $temp_min=$data['temp_min'];
    $date_temp_min=$data['date_temp_min'];
    $heure_temp_min=$data['heure_temp_min'];
    }

$sql = "SELECT temp_min,date_temp_min,heure_temp_min  FROM mois WHERE id='$mois'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $mois_temp_min=$data['temp_min'];
    $mois_date_temp_min=$data['date_temp_min'];
    $mois_heure_temp_min=$data['heure_temp_min'];
    }   

include("wswin_extremes.php");
   
if ($temp_min > $wswin_2006_temp_min) {$temp_min=$wswin_2006_temp_min; $date_temp_min=$wswin_2006_date_temp_min; $heure_temp_min=$wswin_2006_heure_temp_min;}
..... mettre la même chose pour vos différentes années.
if ($temp_min > $wswin_2010_temp_min) {$temp_min=$wswin_2010_temp_min; $date_temp_min=$wswin_2010_date_temp_min; $heure_temp_min=$wswin_2010_heure_temp_min;}
if ($temp_min > $wswin_temp_min) {$temp_min=$wswin_temp_min; $date_temp_min=$wswin_date_temp_min; $heure_temp_min=$wswin_heure_temp_min;}

mysql_query ("UPDATE mois SET temp_min='$temp_min',date_temp_min='$date_temp_min',heure_temp_min='$heure_temp_min' WHERE id='$jour' ");

if ($mois_temp_min > $wswin_2006_mois_temp_min) {$mois_temp_min=$wswin_2006_mois_temp_min; $mois_date_temp_min=$wswin_2006_mois_date_temp_min; $mois_heure_temp_min=$wswin_2006_mois_heure_temp_min;}
..... mettre la même chose pour vos différentes années.
if ($mois_temp_min > $wswin_2010_mois_temp_min) {$mois_temp_min=$wswin_2010_mois_temp_min; $mois_date_temp_min=$wswin_2010_mois_date_temp_min; $mois_heure_temp_min=$wswin_2010_mois_heure_temp_min;}
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;}

mysql_query ("UPDATE mois SET temp_min='$mois_temp_min',date_temp_min='$mois_date_temp_min',heure_temp_min='$mois_heure_temp_min' WHERE id='$mois' ");
mysql_close();

?>

Re: les records un mois donné

Posté : 05 oct. 2011, 15:37
par Tudgur
Là je comprends beaucoup mieux !!! :wink:
Le fichier extremes2.php doit-il être comme ceci ?

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Températures extrêmes</title>
</head>

<body>

<?php
if (date("L") == 1 and date("z") >= 60) {$jour = date("z") + 1;
}
elseif (date("L") == 0 and date("z") >= 60) {$jour = date("z") + 2;
}
$mois=(1000 + date("n"));
$db = mysql_connect('sql4', 'meteoplouguerne', '3u4fbF2S');
mysql_query("set names UTF8");
mysql_select_db('meteoplouguerne_extremes',$db);
$sql = "SELECT temp_min,date_temp_min,heure_temp_min FROM mois WHERE id='$jour'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $temp_min=$data['temp_min'];
    $date_temp_min=$data['date_temp_min'];
    $heure_temp_min=$data['heure_temp_min'];
    }
$sql = "SELECT temp_min,date_temp_min,heure_temp_min FROM mois WHERE id='$mois'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $mois_temp_min=$data['temp_min'];
    $mois_date_temp_min=$data['date_temp_min'];
    $mois_heure_temp_min=$data['heure_temp_min'];
    }
	
	mysql_close();
?>

<?php echo $temp_min,'°C   Date ',$date_temp_min,'   Heure ',$heure_temp_min; ?><br />
<?php echo $mois_temp_min,'°C   Date ',$mois_date_temp_min,'   Heure ',$mois_heure_temp_min; ?>
</body>

</html>
Mais j'ai une erreur dans extrêmes.php :
"Parse error: syntax error, unexpected T_VARIABLE in /web/meteoplouguerne/www/wswin_extremes.php on line 6"
Est-ce le 00:00 ?

Code : Tout sélectionner

<?php


	$wswin_2006_temp_min='14.3';    
	$wswin_2006_date_temp_min='2006'
    $wswin_2006_heure_temp_min='00:00';
    $wswin_2007_temp_min='9.8';
    $wswin_2007_date_temp_min='2007';
    $wswin_2007_heure_temp_min='04:50';
    $wswin_2008_temp_min='13.6';
    $wswin_2008_date_temp_min='2008';
    $wswin_2008_heure_temp_min='21:40';	
    $wswin_2009_temp_min='14.3';
    $wswin_2009_date_temp_min='2009';
    $wswin_2009_heure_temp_min='00:00';   
    $wswin_2010_temp_min='14.3';
    $wswin_2010_date_temp_min='2010';
    $wswin_2010_heure_temp_min='22:33';
    $wswin_temp_min='16.2';
    $wswin_date_temp_min='2011';
    $wswin_heure_temp_min='00:49';
	
	$wswin_2006_temp_max='17.6';    
	$wswin_2006_date_temp_max='2006'
    $wswin_2006_heure_temp_max='11:00';
D'après mes mesures, le minimum le 5/2006 est bien 14.3 mais à 0h00 et 7h45...

Re: les records un mois donné

Posté : 05 oct. 2011, 15:48
par webmaster
Une erreur détectée dans le fichier wswin_extremes.php peut avoir pour cause un problème dans le fichier extremes.php, il faut voir !

Re: les records un mois donné

Posté : 05 oct. 2011, 16:38
par Tudgur
voici mon fichier extremes.php :

Code : Tout sélectionner

<?php
if (date("L") == 1 and date("z") >= 60) {$jour = date("z") + 1;
}
elseif (date("L") == 0 and date("z") >= 60) {$jour = date("z") + 2;
}
$mois=(1000 + date("n"));
$db = mysql_connect('sql4', 'meteoplouguerne', 'xxxxxx');
mysql_query("set names UTF8");
mysql_select_db('meteoplouguerne_extremes',$db);
$sql = "SELECT temp_min,date_temp_min,heure_temp_min FROM mois WHERE id='$jour'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $temp_min=$data['temp_min'];
    $date_temp_min=$data['date_temp_min'];
    $heure_temp_min=$data['heure_temp_min'];
    }
$sql = "SELECT temp_min,date_temp_min,heure_temp_min  FROM mois WHERE id='$mois'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    $mois_temp_min=$data['temp_min'];
    $mois_date_temp_min=$data['date_temp_min'];
    $mois_heure_temp_min=$data['heure_temp_min'];
    }   
   include("wswin_extremes.php");
if ($temp_min > $wswin_2006_temp_min) {$temp_min=$wswin_2006_temp_min; $date_temp_min=$wswin_2006_date_temp_min; $heure_temp_min=$wswin_2006_heure_temp_min;}
if ($temp_min > $wswin_2007_temp_min) {$temp_min=$wswin_2007_temp_min; $date_temp_min=$wswin_2007_date_temp_min; $heure_temp_min=$wswin_2007_heure_temp_min;}
if ($temp_min > $wswin_2008_temp_min) {$temp_min=$wswin_2008_temp_min; $date_temp_min=$wswin_2008_date_temp_min; $heure_temp_min=$wswin_2008_heure_temp_min;}
if ($temp_min > $wswin_2009_temp_min) {$temp_min=$wswin_2009_temp_min; $date_temp_min=$wswin_2009_date_temp_min; $heure_temp_min=$wswin_2009_heure_temp_min;}
if ($temp_min > $wswin_2010_temp_min) {$temp_min=$wswin_2010_temp_min; $date_temp_min=$wswin_2010_date_temp_min; $heure_temp_min=$wswin_2010_heure_temp_min;}
if ($temp_min > $wswin_temp_min) {$temp_min=$wswin_temp_min; $date_temp_min=$wswin_date_temp_min; $heure_temp_min=$wswin_heure_temp_min;}

mysql_query ("UPDATE mois SET temp_min='$temp_min',date_temp_min='$date_temp_min',heure_temp_min='$heure_temp_min' WHERE id='$jour' ");   

if ($mois_temp_min > $wswin_2006_mois_temp_min) {$mois_temp_min=$wswin_2006_mois_temp_min; $mois_date_temp_min=$wswin_2006_mois_date_temp_min; $mois_heure_temp_min=$wswin_2006_mois_heure_temp_min;}
if ($mois_temp_min > $wswin_2007_mois_temp_min) {$mois_temp_min=$wswin_2007_mois_temp_min; $mois_date_temp_min=$wswin_2007_mois_date_temp_min; $mois_heure_temp_min=$wswin_2007_mois_heure_temp_min;}
if ($mois_temp_min > $wswin_2008_mois_temp_min) {$mois_temp_min=$wswin_2008_mois_temp_min; $mois_date_temp_min=$wswin_2008_mois_date_temp_min; $mois_heure_temp_min=$wswin_2008_mois_heure_temp_min;}
if ($mois_temp_min > $wswin_2008_mois_temp_min) {$mois_temp_min=$wswin_2008_mois_temp_min; $mois_date_temp_min=$wswin_2008_mois_date_temp_min; $mois_heure_temp_min=$wswin_2008_mois_heure_temp_min;}
if ($mois_temp_min > $wswin_2010_mois_temp_min) {$mois_temp_min=$wswin_2010_mois_temp_min; $mois_date_temp_min=$wswin_2010_mois_date_temp_min; $mois_heure_temp_min=$wswin_2010_mois_heure_temp_min;}
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;}

mysql_query ("UPDATE mois SET temp_min='$mois_temp_min',date_temp_min='$mois_date_temp_min',heure_temp_min='$mois_heure_temp_min' WHERE id='$mois' ");
mysql_close();

?>
Il n'y a pas encore les comparaisons pour la temp max...
Mais je ne vois pas le rapport avec l'erreur dans wswin_extremes.php

Et les variables et tags pour les mini et maxi mensuel, ce sont les mêmes que pour les mini et maxi journaliers ?
$wswin_temp_max=
$wswin_date_temp_max=
$wswin_heure_temp_mois=

Re: les records un mois donné

Posté : 05 oct. 2011, 16:45
par webmaster
Il manque un ; sur la seconde ligne du wswin_extremes.php !

Et probablement idem maintenant en ligne 24.

Re: les records un mois donné

Posté : 05 oct. 2011, 17:00
par Tudgur
webmaster a écrit :Il manque un ; sur la seconde ligne du wswin_extremes.php !
Fallait trouver, bravo !!!
Et un autre ; manquant ligne 25.
Aïe aïe aïe, les copier-coller trop rapides...
webmaster a écrit :PS j'ai supprimé ton mot de passe....
Tu as très bien fait, merci beaucoup !
Hier j'ai pris soin de le faire et aujourd'hui, dans l'empressement...

Alors, maintenant, est-ce que je mets les conditions pour les temp max journaliers, directement à la suite de celle des temp min ?
serait-ce
if ($temp_max < $wswin_2006_temp_max)....?
................
.................

Re: les records un mois donné

Posté : 05 oct. 2011, 17:05
par webmaster
Tudgur a écrit : Aïe aïe aïe, les copier-coller trop rapides...
Je connais çà :roll:

Re: les records un mois donné

Posté : 05 oct. 2011, 17:08
par Tudgur
Voir mon post plus haut ...

Re: les records un mois donné

Posté : 05 oct. 2011, 17:16
par webmaster
A faire avant si cela n'est déjà fait:
-Créer les lignes dans la table sql.
-ajouter tes nouvelles variables à cette ligne

Code : Tout sélectionner

$sql = "SELECT temp_min,date_temp_min,heure_temp_min FROM mois WHERE id='$jour'";
-Imputer les valeurs comme pour les minimums

Code : Tout sélectionner

$temp_min=$data['temp_min'];
$date_temp_min=$data['date_temp_min'];
$heure_temp_min=$data['heure_temp_min'];
-Faire tes ligne de tets
-Et pour finir ajouter les variables aux lignes mysql_query

Re: les records un mois donné

Posté : 05 oct. 2011, 17:36
par Tudgur
webmaster a écrit : -Faire tes lignes de tests
Je mets les conditions pour les temp max journaliers, directement à la suite de celles des temp min ?
comme ceci ?
if ($temp_max < $wswin_2006_temp_max)....?
................
.................

Re: les records un mois donné

Posté : 05 oct. 2011, 17:37
par webmaster
Oui exactement !

Re: les records un mois donné

Posté : 05 oct. 2011, 19:29
par Tudgur
Bon, ça fonctionne mais il faut que je modifie un tag !
Puisque je ne veux pas du format JJ/MM/AAA pour les extrêmes mensuels, il faut que j'arrive à avoir "en AAAA, le JJ"
Un peu plus compliqué...
Je dois donc créer une autre variable, par exemple $mois_date_temp_jour_min=$data['date_temp_jour_min'];
Dans le tag de wswin je vais donc couper mois et année.

Pour l'instant, j'ai ceci pour les temp mini et maxi journaliers et pour le mini mensuel.
Ce sont les bonnes valeurs.

Pour la pluie et l’ensoleillement, il n'y a pas de maxi ni de mini, on prend quel tag ?

Re: les records un mois donné

Posté : 05 oct. 2011, 20:04
par webmaster
Tudgur a écrit : Bon, ça fonctionne mais il faut que je modifie un tag !
Puisque je ne veux pas du format JJ/MM/AAA pour les extrêmes mensuels, il faut que j'arrive à avoir "en AAAA, le JJ"
Un peu plus compliqué...
Je dois donc créer une autre variable, par exemple $mois_date_temp_jour_min=$data['date_temp_jour_min'];
Dans le tag de wswin je vais donc couper mois et année.
Pas obligatoirement, je trouve que çà complique grandement les choses !
Je pense qu'il vaut mieux uniformiser la base et comme je te le disais ce matin (ou hier soir je ne sais plus) qui peut le plus peu le moins !
Ca devrait te plaire:

Code : Tout sélectionner

<?php $date_temp_min = explode("/", $date_temp_min); echo $date_temp_min[0],'/',$date_temp_min[2]; ?>
Tudgur a écrit : Pour la pluie et l’ensoleillement, il n'y a pas de maxi ni de mini, on prend quel tag ?
Pour la pluie

Code : Tout sélectionner

Antérieur Jour -> %avgvalpast[34~%ws_day2%~%ws_month2%~AAAA%
Antérieur mois -> %rain_mpast[%ws_month2%~AAAA]%
Aujourd'hui -> %rainday%
Mois -> %rainmonth%
Pour le soleil c'est un peu plus compliqué

Code : Tout sélectionner

Antérieur Jour -> %ws_setmem[55]=%ws_cutstr=0~7~%sundaypast[%ws_day2%~%ws_month2%~AAAA]%%%
                  %ws_timetoval[%ws_getmem[55]%]%
Antérieur mois -> %sun_d_mpast[%ws_month2%~AAAA]%
Aujourd'hui -> %sunday_d%
Jour -> %sunmonth_d%