Requête Php

Un problème, une question sur la partie PHP des graphiques

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: Requête Php

Message par Météo Villarzel » 25 oct. 2014, 19:48

Ciao Pascal.
je suis une vraie bille en php, mais comme ton sript était à la base pour compter les jours de pluie, donc count veut bien dire compter.

J'ai trouvé un bonne explication ici

http://php.net/manual/fr/function.count.php

Et pour le loto, tu arrives à me sortir les chiffres du tirage de ce soir ? ça ne fais rien s'il ne sont pas dans l'ordre :lol:

A+
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

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Requête Php

Message par JP54 » 25 oct. 2014, 20:34

Si je les trouve les numéros du loto, je les garde pour moi :D
Une bille en php, je ne suis pas sur, par contre moi, c'est sur que j'en suis une.
Merci pour le lien, c'est nettement mieux expliqué que sur ceux que j'ai trouvé.
Bon, mon graphique n'est pas fini, il faut que fasse les écarts entre les cumuls mensuels et les normales, encore une bien longue histoire et de longue heures devant le fichier.
Encore Merci Pierre André
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Requête Php

Message par JP54 » 26 oct. 2014, 11:43

je continu sur ma lancée pour insérer dans mon graphique une courbe qui compare les cumuls mensuels avec les normales. Pou ce faire je me suis inspiré du tuto Pluviométrie Mensuelle Comparée aux Normales 1981-2010 du forum "Vos tutoriels".
J'ai réussi à comparé le cumuls aux normales, mais tout les écarts sont faux sauf pour le mois de janvier. Est ce un hasard je ne sais pas. Les écarts de mon graphique (écart entre le cumul et la normale) sauf janvier ne correspondent à rien, je ne sis pas d'ou viennent ces chiffres.

Ce que j'ai remarqué:
Dans mon graphique actuel j'ai une boucle

Code : Tout sélectionner

 $query=mysqli_query($conn,$sql);  
$i=0;
while($list=mysqli_fetch_array($query)) {
$Pluie[$i]=$list[1]*1;
if($Pluie[$i]==0) {$Pluie[$i]= null;}
et dans le tuto, il y en a une autre

Code : Tout sélectionner

     $i=0;
    while ($list = mysqli_fetch_assoc($query)) {     
    if (date("I",time())==0) {
       $time[$i]=($list['tstamp']+3600)*1000;
       }
    else {
       $time[$i]=($list['tstamp']+7200)*1000;
      }

    $Rain_jour[$i]=$list['SUM(Rain_jour)']*1;

       if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=64.2;}
       elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=56.9;}
       elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=61.3;}
       elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=50.5;}
       elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=58.9;}
       elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=61.7;}
       elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=63.7;}
       elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=60.8;}
       elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=62.7;}
       elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=71.8;}
       elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=64.0;}
       elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=78.8;}

    $Ecart[$i]=$Rain_jour[$i]-$NormaleMensuelle[$i];

    $i++;
    }    
    ?>
Est ce que le problème ne viendrait pas de ça.
while($list=mysqli_fetch_array($query)) dans mon graphique et while ($list = mysqli_fetch_assoc($query)) pour la boucle des normales.

je pense pour que mon graphique fonctionne je devrais combiné les deux boucles

Le code de mon graphique actuel

Code : Tout sélectionner

<?php
// appel du script de connexion
require("mysql_connect.php");                     

$conn=mysqli_connect($server,$user,$pass,$db);

$start=mktime(0,0,0,1,1,date("Y"));
$stop =mktime(0,0,0,1,1,date("Y")+1);
      
$sql="SELECT substr(recdatetz, 5, 2),sum(Rain_jour) FROM MiniMaxidata 
      WHERE tstamp > '$start' 
      AND tstamp <= '$stop'
      AND Rain_jour
      group by 1
      union
      SELECT substr(recdatetz, 5, 2),null FROM MiniMaxidata 
      WHERE tstamp > '$start' 
      AND tstamp <='$stop'
      AND substr(recdatetz, 5, 2) not in (SELECT substr(recdatetz, 5, 2) 
                                          FROM MiniMaxidata
                                          WHERE tstamp > '$start'
                                          AND tstamp <= '$stop'
                                          AND Rain_jour)
      group by 1
      order by 1";

$query=mysqli_query($conn,$sql);  
$i=0;
while($list=mysqli_fetch_array($query)) {
$Pluie[$i]=$list[1]*1;
if($Pluie[$i]==0) {$Pluie[$i]= null;}

    if (date("I",time())==0) {
       $time[$i]=($list['tstamp']+3600)*1000;
       }
    else {
       $time[$i]=($list['tstamp']+7200)*1000;
      }
    $Rain_jour[$i]=$list['SUM(Rain_jour)']*1;

       if (date("m",$time[$i]/1000)==1) {$Normale[$i]=69.4;}
       elseif (date("m",$time[$i]/1000)==2) {$Normale[$i]=56.1;}
       elseif (date("m",$time[$i]/1000)==3) {$Normale[$i]=65.1;}
       elseif (date("m",$time[$i]/1000)==4) {$Normale[$i]=53.9;}
       elseif (date("m",$time[$i]/1000)==5) {$Normale[$i]=63.3;}
       elseif (date("m",$time[$i]/1000)==6) {$Normale[$i]=63.2;}
       elseif (date("m",$time[$i]/1000)==7) {$Normale[$i]=70.7;}
       elseif (date("m",$time[$i]/1000)==8) {$Normale[$i]=64.2;}
       elseif (date("m",$time[$i]/1000)==9) {$Normale[$i]=66.9;}
       elseif (date("m",$time[$i]/1000)==10) {$Normale[$i]=71;}
       elseif (date("m",$time[$i]/1000)==11) {$Normale[$i]=67.2;}
       elseif (date("m",$time[$i]/1000)==12) {$Normale[$i]=74.8;}

    $Ecart[$i]=$Pluie[$i]-$Normale[$i];

    $i++;
    }    
$Normale=array(69.4, 56.1, 65.1, 53.9, 63.3, 63.2, 70.7, 64.2, 66.9, 71, 67.2, 74.8,null,null);
$Time=array("jan","fev","mar","avr","mai","juin","jui","août","sep","oct","nov","déc","","année");
$Pluie=array($Pluie[0],$Pluie[1],$Pluie[2],$Pluie[3],$Pluie[4],$Pluie[5],$Pluie[6],$Pluie[7],$Pluie[8],$Pluie[9],$Pluie[10],$Pluie[11],$Pluie[12],null,null);
$Normale_an= 785.8;
$Pluie_an = $Pluie[0]+$Pluie[1]+$Pluie[2]+$Pluie[3]+$Pluie[4]+$Pluie[5]+$Pluie[6]+$Pluie[7]+$Pluie[8]+$Pluie[9]+$Pluie[10]+$Pluie[11]+$Pluie[12];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META NAME="SUBJECT" CONTENT="Graphique Vantage Pro Davis">
<META NAME="DESCRIPTION" CONTENT="graphique dynamique">
<META NAME="KEYWORDS" CONTENT=" mto, pluie, vent, temprature, temperature, station, Vantage, Davis, Pro, Davis Vantage Pro,pression, UV, soleil,">
<META NAME="REVISIT-AFTER" CONTENT="5 DAYS">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=9" >
<META NAME="LANGUAGE" CONTENT="FR">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Météo Jarny - graphique dynamique température des dernières 48 heures</title>

      
      <!-- 1. Add these JavaScript inclusions in the head of your page -->
		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>         
		<script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script> 	
		<script type="text/javascript" src="http://code.highcharts.com/themes/grid.js"></script> 
		<script type="text/javascript" src="http://code.highcharts.com/modules/exporting.js"></script>
<!--		<script type="text/javascript" src="jquery/overlib.js"></script>
		<script type="text/javascript" src="jquery/overlib_fade.js"></script>  -->  


      <script type="text/javascript">  
        function comArr(unitsArray) { 
        var outarr = [];
        for (var i = 0; i < dTime.length; i++) {
         outarr[i] = [dTime[i], unitsArray[i]];
        }
      return outarr;
    } 	  
$(function () {
    var chart;        
         $(document).ready(function() {      
         var highchartsOptions = Highcharts.setOptions(Highcharts.theme);		 
         Highcharts.setOptions({
        lang: {
        months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
        weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
        shortMonths: ['Jan.', 'Fév.', 'Mars', 'Avr.', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc'],
        exportButtonTitle: "Exporter",
        printButtonTitle: "Imprimer",
        rangeSelectorFrom: "Du:",
        rangeSelectorTo: "A:",
        rangeSelectorZoom: "Période:",
        resetZoom: 'RAZ Zoom',
        resetZoomTitle: 'Initialiser zoom ? 1:1',
        downloadPNG: "Télécharger au format PNG image",
        downloadJPEG: "Téléécharger au format JPEG image",
        downloadPDF: "Télécharger au format PDF document",
        downloadSVG: "Télécharger au format SVG vector image",
        exportButtonTitle: "Exporter image ou document",
        printButtonTitle: "Imprimer le graphique",
        loading: "Chargement...",
        thousandsSep: ""
        }
      });
        chart = new Highcharts.Chart({
            chart: {
			renderTo: 'container', 
              zoomType: 'x', 
                type: 'column',
                margin: [ 50, 85, 75, 80],
				backgroundColor: {
				linearGradient: [0, 500, 500, 0],
				stops: [
				    [0, 'rgb(158, 171, 252)'],
                    [1, 'rgb(255, 255, 255)']

                ]
              },
            },
            title: {
                text: 'Comparaison des cumuls mensuels de l\'année 2014'
            },
			subtitle: {
                text: 'Source: Météo Jarny',
                x: -20
            },

			credits: {
            text: '© Météo Jarny',
            href: 'http://www.meteo-jarny.com'
			},

            xAxis: {
                categories: [
                    'Jan',
                    'Fév',
                    'Mar',
                    'Avr',
                    'Mai',
                    'Juin',
                    'Juil',
                    'Août',
                    'Sep',
                    'Oct',
                    'Nov',
                    'Déc',
                    '',
					'Année'
                ],
                labels: {
                    rotation: 0,
                    align: 'center',
                    style: {
                        fontSize: '13px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            },
            yAxis: [{
			      title: {
                  text: 'Cumuls mensuels',
                },
					labels: {
                    formatter: function() {
                        return this.value +' mm';
                    },
                    style: {
                        color: '#000000'
                    }
                },
				
            },
{
			      title: {
                  text: 'Cumul annuel',
                },
					labels: {
                    formatter: function() {
                        return this.value +' mm';
                    },
                    style: {
                        color: '#000000'
                    }
                },
				opposite: true
            }],

            legend: {
                enabled: true,
				x: 0

            },
tooltip: {
            pointFormat: '{series.name}: <b>{point.y}</b><br/>',
            valueSuffix: ' mm',
            shared: true
        },
			plotOptions: {
                column: {
                	grouping: false,
                	shadow: false,
                    
                }
            },
			
			series: [{
                name: 'Cumuls mensuels',
				color: '#688dfe',
                data:  comArr(dPluie),
                pointPadding: -0.2    
            },{
                type: 'spline',
                color: '#ff8c00',
                name: 'Normale',
                data: comArr(dNormale),
				lineWidth: 0,
				marker :{
				enbled: true,
				symbol: 'circle',
				radius: 3},
                pointPadding: -0.3
			},{
              name: 'Ecart',
            id : 'Ecart',
              type: 'column',
            color: {
               linearGradient: { x1: 0, x2: 0, y1: 1, y1: 1.5 },
               stops: [
                  [0, 'rgba(255, 0, 0, .9)'],
                  [1, 'rgba(255, 255, 0, .8)']
               ]
            },
              data: comArr(Ecart),
            },{
                name: 'Cumul annuel',
                color: '#688dfe',
                data: [null,null,null,null,null,null,null,null,null,null,null,null,null, <?php echo $Pluie_an;?>],
				pointPadding: -0.2,
				yAxis: 1
            },{
                name: 'Normale',
                color: '#84e598',
                data: [null,null,null,null,null,null,null,null,null,null,null,null,null,<?php echo $Normale_an;?>],
				yAxis: 1
    
            }]
        });
    });
 });	
eval(<?php echo  "'var dTime =  ".json_encode($Time)."'" ?>);
eval(<?php echo  "'var dPluie =  ".json_encode($Pluie)."'" ?>);
eval(<?php echo  "'var dNormale =  ".json_encode($Normale)."'" ?>); 
eval(<?php echo  "'var dNormale_an =  ".json_encode($Normale_an)."'" ?>); 
eval(<?php echo  "'var dPluie_an =  ".json_encode($Pluie_an)."'" ?>);
eval(<?php echo  "'var Ecart =  ".json_encode($Ecart)."'" ?>); 
	
     </script>
    <style type="text/css">
.style1 {
	text-align: left;
}
</style>
    </head>
     <body>
<table width="500" border="0" align="center">

<tr>
<td>	 
       <div id="container" style="width: 600px; height: 300px; margin: 0 auto" class="style1"></div>
	   <div align="center"></div>
	   </td></tr></table>
     </body>
</html>
 
Le résultat
http://www.meteo-jarny.com/graphiques-d ... -copie.php

Maintenant, peut-on combiné ces deux boucles, le problème vient-il de ça ou d'autre chose.
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

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

Re: Requête Php

Message par Météo Villarzel » 26 oct. 2014, 13:08

là ça me semble correct
http://www.boock.ch/meteo/graphiques_ph ... jarny2.php

Reste encore le calcul sur l'année à voir :roll:

Code : Tout sélectionner

<?php
// appel du script de connexion
require("mysqli_connect.php");                     

$sql="select max(tstamp) from data";
$query = mysqli_query($conn,$sql);                  
$list=mysqli_fetch_array($query);

$start=mktime(0,0,0,1,1,date("Y"));
$stop =mktime(0,0,0,1,1,date("Y")+1);
      
$sql = "SELECT tstamp, SUM(Rain_jour), substr(recdateTZ,1,6) AS AnneeMois FROM `MiniMaxidata`WHERE tstamp > '$start' AND tstamp <= '$stop' GROUP BY AnneeMois";  
$query = mysqli_query($conn,$sql);                   
$i=0;
while ($list = mysqli_fetch_assoc($query)) {      
if (date("I",time())==0) { 
   $time[$i]=($list['tstamp']+3600)*1000;
   } 
else {
   $time[$i]=($list['tstamp']+7200)*1000;
  } 

$Rain_jour[$i]=$list['SUM(Rain_jour)']*1;

   if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=53;}
   elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=47;}
   elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=60;}
   elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=68;}
   elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=90;}
   elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=90;}
   elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=88;}
   elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=95;}
   elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=84;}
   elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=86;}
   elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=64;}
   elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=66;}

$Ecart[$i]=$Rain_jour[$i]-$NormaleMensuelle[$i];

$i++;
}    

$Normale=array(53, 47, 60, 68, 90, 90, 88, 95, 84, 86, 64, 66,null,null);
$Time=array("jan","fev","mar","avr","mai","juin","jui","août","sep","oct","nov","déc","","année");
$Rain_jour=array($Rain_jour[0],$Rain_jour[1],$Rain_jour[2],$Rain_jour[3],$Rain_jour[4],$Rain_jour[5],$Rain_jour[6],$Rain_jour[7],$Rain_jour[8],$Rain_jour[9],$Rain_jour[10],$Rain_jour[11],$Rain_jour[12],null,null);
$Normale_an= 785.8;
$Pluie_an = $Rain_jour[0]+$Rain_jour[1]+$Rain_jour[2]+$Rain_jour[3]+$Rain_jour[4]+$Rain_jour[5]+$Rain_jour[6]+$Rain_jour[7]+$Rain_jour[8]+$Rain_jour[9]+$Rain_jour[10]+$Rain_jour[11]+$Rain_jour[12];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META NAME="SUBJECT" CONTENT="Graphique Vantage Pro Davis">
<META NAME="DESCRIPTION" CONTENT="graphique dynamique">
<META NAME="KEYWORDS" CONTENT=" mto, pluie, vent, temprature, temperature, station, Vantage, Davis, Pro, Davis Vantage Pro,pression, UV, soleil,">
<META NAME="REVISIT-AFTER" CONTENT="5 DAYS">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=9" >
<META NAME="LANGUAGE" CONTENT="FR">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Météo Jarny - graphique dynamique température des dernières 48 heures</title>

      
      <!-- 1. Add these JavaScript inclusions in the head of your page -->
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>         
      <script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>    
      <script type="text/javascript" src="http://code.highcharts.com/themes/grid.js"></script> 
      <script type="text/javascript" src="http://code.highcharts.com/modules/exporting.js"></script>
<!--      <script type="text/javascript" src="jquery/overlib.js"></script>
      <script type="text/javascript" src="jquery/overlib_fade.js"></script>  -->  


      <script type="text/javascript">  
        function comArr(unitsArray) { 
        var outarr = [];
        for (var i = 0; i < dTime.length; i++) {
         outarr[i] = [dTime[i], unitsArray[i]];
        }
      return outarr;
    }      
$(function () {
    var chart;        
         $(document).ready(function() {      
         var highchartsOptions = Highcharts.setOptions(Highcharts.theme);       
         Highcharts.setOptions({
        lang: {
        months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
        weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
        shortMonths: ['Jan.', 'Fév.', 'Mars', 'Avr.', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc'],
        exportButtonTitle: "Exporter",
        printButtonTitle: "Imprimer",
        rangeSelectorFrom: "Du:",
        rangeSelectorTo: "A:",
        rangeSelectorZoom: "Période:",
        resetZoom: 'RAZ Zoom',
        resetZoomTitle: 'Initialiser zoom ? 1:1',
        downloadPNG: "Télécharger au format PNG image",
        downloadJPEG: "Téléécharger au format JPEG image",
        downloadPDF: "Télécharger au format PDF document",
        downloadSVG: "Télécharger au format SVG vector image",
        exportButtonTitle: "Exporter image ou document",
        printButtonTitle: "Imprimer le graphique",
        loading: "Chargement...",
        thousandsSep: ""
        }
      });
        chart = new Highcharts.Chart({
            chart: {
         renderTo: 'container', 
              zoomType: 'x', 
                type: 'column',
                margin: [ 50, 85, 75, 80],
            backgroundColor: {
            linearGradient: [0, 500, 500, 0],
            stops: [
                [0, 'rgb(158, 171, 252)'],
                    [1, 'rgb(255, 255, 255)']

                ]
              },
            },
            title: {
                text: 'Comparaison des cumuls mensuels de l\'année 2014'
            },
         subtitle: {
                text: 'Source: Météo Jarny',
                x: -20
            },

         credits: {
            text: '© Météo Jarny',
            href: 'http://www.meteo-jarny.com'
         },

            xAxis: {
                categories: [
                    'Jan',
                    'Fév',
                    'Mar',
                    'Avr',
                    'Mai',
                    'Juin',
                    'Juil',
                    'Août',
                    'Sep',
                    'Oct',
                    'Nov',
                    'Déc',
                    '',
               'Année'
                ],
                labels: {
                    rotation: 0,
                    align: 'center',
                    style: {
                        fontSize: '13px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            },
            yAxis: [{
               title: {
                  text: 'Cumuls mensuels',
                },
               labels: {
                    formatter: function() {
                        return this.value +' mm';
                    },
                    style: {
                        color: '#000000'
                    }
                },
            
            },
{
               title: {
                  text: 'Cumul annuel',
                },
               labels: {
                    formatter: function() {
                        return this.value +' mm';
                    },
                    style: {
                        color: '#000000'
                    }
                },
            opposite: true
            }],

            legend: {
                enabled: true,
            x: 0

            },
tooltip: {
            pointFormat: '{series.name}: <b>{point.y}</b><br/>',
            valueSuffix: ' mm',
            shared: true
        },
         plotOptions: {
                column: {
                   grouping: false,
                   shadow: false,
                    
                }
            },
         
         series: [{
                name: 'Cumuls mensuels',
            color: '#688dfe',
                data:  comArr(dPluie),
                pointPadding: -0.2    
            },{
                type: 'spline',
                color: '#ff8c00',
                name: 'Normale',
                data: comArr(dNormale),
            lineWidth: 0,
            marker :{
            enbled: true,
            symbol: 'circle',
            radius: 3},
                pointPadding: -0.3
         },{
              name: 'Ecart',
            id : 'Ecart',
              type: 'column',
            color: {
               linearGradient: { x1: 0, x2: 0, y1: 1, y1: 1.5 },
               stops: [
                  [0, 'rgba(255, 0, 0, .9)'],
                  [1, 'rgba(255, 255, 0, .8)']
               ]
            },
              data: comArr(Ecart),
            },{
                name: 'Cumul annuel',
                color: '#688dfe',
                data: [null,null,null,null,null,null,null,null,null,null,null,null,null, <?php echo $Pluie_an;?>],
            pointPadding: -0.2,
            yAxis: 1
            },{
                name: 'Normale',
                color: '#84e598',
                data: [null,null,null,null,null,null,null,null,null,null,null,null,null,<?php echo $Normale_an;?>],
            yAxis: 1
    
            }]
        });
    });
 });   
eval(<?php echo  "'var dTime =  ".json_encode($Time)."'" ?>);
eval(<?php echo  "'var dPluie =  ".json_encode($Rain_jour)."'" ?>);
eval(<?php echo  "'var dNormale =  ".json_encode($Normale)."'" ?>); 
eval(<?php echo  "'var dNormale_an =  ".json_encode($Normale_an)."'" ?>); 
eval(<?php echo  "'var dPluie_an =  ".json_encode($Pluie_an)."'" ?>);
eval(<?php echo  "'var Ecart =  ".json_encode($Ecart)."'" ?>); 
   
     </script>
    <style type="text/css">
.style1 {
   text-align: left;
}
</style>
    </head>
     <body>
<table width="500" border="0" align="center">

<tr>
<td>    
       <div id="container" style="width: 600px; height: 300px; margin: 0 auto" class="style1"></div>
      <div align="center"></div>
      </td></tr></table>
     </body>
</html>
 
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

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Requête Php

Message par JP54 » 26 oct. 2014, 14:20

Pourquoi avoir supprimer cette partie de ce code

Code : Tout sélectionner

$sql="SELECT substr(recdatetz, 5, 2),sum(Rain_jour) FROM MiniMaxidata 
      WHERE tstamp > '$start' 
      AND tstamp <= '$stop'
      AND Rain_jour
      group by 1
      union
      SELECT substr(recdatetz, 5, 2),null FROM MiniMaxidata 
      WHERE tstamp > '$start' 
      AND tstamp <='$stop'
      AND substr(recdatetz, 5, 2) not in (SELECT substr(recdatetz, 5, 2) 
                                          FROM MiniMaxidata
                                          WHERE tstamp > '$start'
                                          AND tstamp <= '$stop'
                                          AND Rain_jour)
et également celle la

Code : Tout sélectionner

$Pluie[$i]=$list[1]*1;
if($Pluie[$i]==0) {$Pluie[$i]= null;}
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

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

Re: Requête Php

Message par Météo Villarzel » 26 oct. 2014, 14:26

a la basse elle servait à compter les jours de pluie, donc rien à faire ici :roll:
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

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Requête Php

Message par JP54 » 26 oct. 2014, 14:35

Ok donc j'aurais déjà du supprimer ces codes avant de faire les cumuls mensuels.

Si je comprend le code:
Tu écrit la première boucle pour avoir les cumuls classés par mois.

Code : Tout sélectionner

    $list=mysqli_fetch_array($query);

    $start=mktime(0,0,0,1,1,date("Y"));
    $stop =mktime(0,0,0,1,1,date("Y")+1);
         
    $sql = "SELECT tstamp, SUM(Rain_jour), substr(recdateTZ,1,6) AS AnneeMois FROM `MiniMaxidata`WHERE tstamp > '$start' AND tstamp <= '$stop' GROUP BY AnneeMois"; 
puis la deuxième boucle pour comparé les cumuls avec la normale

Code : Tout sélectionner

    while ($list = mysqli_fetch_assoc($query)) {     
    if (date("I",time())==0) {
       $time[$i]=($list['tstamp']+3600)*1000;
       }
    else {
       $time[$i]=($list['tstamp']+7200)*1000;
      }

    $Rain_jour[$i]=$list['SUM(Rain_jour)']*1;

       if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=69.4;}
       elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=56.1;}
       elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=65.1;}
       elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=53.9;}
       elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=63.3;}
       elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=63.2;}
       elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=70.7;}
       elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=64.2;}
       elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=66.9;}
       elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=71;}
       elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=67.2;}
       elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=47.8;}

    $Ecart[$i]=$Rain_jour[$i]-$NormaleMensuelle[$i];
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

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

Re: Requête Php

Message par Météo Villarzel » 26 oct. 2014, 15:17

C'est pas un boucle, c'est le script qui récupère les valeurs sans la BDD

Code : Tout sélectionner

    $list=mysqli_fetch_array($query);

    $start=mktime(0,0,0,1,1,date("Y"));
    $stop =mktime(0,0,0,1,1,date("Y")+1);
         
    $sql = "SELECT tstamp, SUM(Rain_jour), substr(recdateTZ,1,6) AS AnneeMois FROM `MiniMaxidata`WHERE tstamp > '$start' AND tstamp <= '$stop' GROUP BY AnneeMois"; 
il n'y a qu'une boucle (while)

Code : Tout sélectionner

    while ($list = mysqli_fetch_assoc($query)) {     
    if (date("I",time())==0) {
       $time[$i]=($list['tstamp']+3600)*1000;
       }
    else {
       $time[$i]=($list['tstamp']+7200)*1000;
      }

    $Rain_jour[$i]=$list['SUM(Rain_jour)']*1;

       if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=69.4;}
       elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=56.1;}
       elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=65.1;}
       elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=53.9;}
       elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=63.3;}
       elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=63.2;}
       elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=70.7;}
       elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=64.2;}
       elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=66.9;}
       elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=71;}
       elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=67.2;}
       elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=47.8;}

    $Ecart[$i]=$Rain_jour[$i]-$NormaleMensuelle[$i];
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

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Requête Php

Message par JP54 » 26 oct. 2014, 15:35

Très juste, dans le script c'est $list=mysqli_fetch_array($query); et non while ($list = mysqli_fetch_assoc($query)) While qui est la boucle

J'ai réussi à supprimer le tooltip dans l'espace vide entre décembre et l'année, j'ai ajouté cette ligne dans le php

Code : Tout sélectionner

	$Ecart=array($Ecart[0],$Ecart[1],$Ecart[2],$Ecart[3],$Ecart[4],$Ecart[5],$Ecart[6],$Ecart[7],$Ecart[8],$Ecart[9],$Ecart[10],$Ecart[11],$Ecart[12],null,null);
Je ne sais pas si c'est correct, mais ça fonctionne. En faite, la colonne vide entre décembre et année et séparée en deux, résultat
http://www.meteo-jarny.com/graphiques-d ... -copie.php

Je vais voir pour mettre l'écart sur le cumul annuel
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Répondre