Probleme avec le tutoriel "Tutoriel MySQL - Highchart

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

Modérateurs : jturlier, Météo Villarzel

Répondre
ebondoux
Messages : 3
Enregistré le : 10 mai 2016, 16:31

Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par ebondoux » 10 mai 2016, 18:20

Bonjour à tous,

Etant à la recherche d'information sur la mise en application des graphique higcharts, je suis tombé sur cette mine d'information. je n'ai pas vraiment eu de problème pour la gestion de ma base de donnée que j'alimente avec du python, mais par contre je n'arrive pas à appliquer le tutoriel.
En effet il semble que tout fonctionne bien jusqu'à l'encodage json.
En fait, le script javascript réalisant l'encodage ne semble pas fonctionner. (globalement il ne se passe rien aucune réponse à la fonction "echo" dans mon navigateur Chrome (qui est bien configuré pour exécuter du javascript.

le scripte me posant pb

<script type="text/javascript">
eval(<?php echo "'var time = ".json_encode($time)."'" ?>);
eval(<?php echo "'var outdoortemperature = ".json_encode($outdoortemperature)."'" ?>);
eval(<?php echo "'var windchill = ".json_encode($windchill)."'" ?>);
eval(<?php echo "'var dewpoint = ".json_encode($dewpoint)."'" ?>);
eval(<?php echo "'var outdoorheatindex = ".json_encode($outdoorheatindex)."'" ?>);
</script>


par contre si dans le php j'ajoute

echo "'var time = ".json_encode($time)."'";

la ligne au format Json s'affiche avec les bonnes valeurs.


Il semble donc que le pb vienne peut être de l'endroit ou je place le script dans la page ?

Auriez vous s'il vous plait une petite idée ?

Par avance Merci Beaucoup ! et bravo pour tout ce travail !!!

E . Bondoux



<?php

header('content-type/application/json');
mysql_connect('localhost','root','') or die(mysl_error());
mysql_select_db('weatherdata');
$sql = "SELECT max(datetime) FROM weatherdata ";
$query=mysql_query($sql);
$list=mysql_fetch_array($query);

$stop=$list[0];
$start=$stop-(86400*2);//86400=24 heures donc 86400*2=48 heures

$sql = "SELECT datetime, humidity, Tlocale
FROM weatherdata where datetime >= '$start' and datetime <= '$stop' ORDER BY 1";
$query=mysql_query($sql);
$i=0;

while ($list = mysql_fetch_assoc($query)) {
if (date("I",time())==0) {
$datetime[$i]=($list['datetime']+3600)*1000;
}
else {
$datetime[$i]=($list['datetime']+7200)*1000;
}
$humidity[$i]=$list['humidity']*1;
$Tlocale[$i]=$list['Tlocale']*1;

$i++;
}

//test pour voir si ça fonctionne
//echo "'var datetime = ".json_encode($datetime)."'";
//echo "'var humidity = ".json_encode($humidity)."'";
//echo "'var Tlocale = ".json_encode($Tlocale)."'";


?>

<script type="text/javascript">
eval(<?php echo "'var datetime = ".json_encode($datetime)."'" ?>);
eval(<?php echo "'var humidity = ".json_encode($humidity)."'" ?>);
eval(<?php echo "'var Tlocale = ".json_encode($Tlocale)."'" ?>);
</script>

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

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par Météo Villarzel » 10 mai 2016, 22:34

Bonsoir,

une fois tu indiques
le scripte me posant pb
<script type="text/javascript">
eval(<?php echo "'var time = ".json_encode($time)."'" ?>);
eval(<?php echo "'var outdoortemperature = ".json_encode($outdoortemperature)."'" ?>);
eval(<?php echo "'var windchill = ".json_encode($windchill)."'" ?>);
eval(<?php echo "'var dewpoint = ".json_encode($dewpoint)."'" ?>);
eval(<?php echo "'var outdoorheatindex = ".json_encode($outdoorheatindex)."'" ?>);
</script>
et après
<script type="text/javascript">
eval(<?php echo "'var datetime = ".json_encode($datetime)."'" ?>);
eval(<?php echo "'var humidity = ".json_encode($humidity)."'" ?>);
eval(<?php echo "'var Tlocale = ".json_encode($Tlocale)."'" ?>);
</script>
tu peux mettre en ligne le code complet de ton graphique et s'il est en ligne nous donner le lien.

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

ebondoux
Messages : 3
Enregistré le : 10 mai 2016, 16:31

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par ebondoux » 11 mai 2016, 13:10

Bonjour et merci d'avoir pris le temps de me répondre,

En fait les premieres lignes de code etaient pour faire références au tuto.

donc mon code complet est en dessous. (voir ci après). le ode n'est pas en ligne sur un serveur publique, j'utilise wamp sur un réseau locale (et pour le moment en locale sur ma machine pour le dev).

tout se passe bien jusqu'a la partie javascript.
si je colle
echo "'var datetime = ".json_encode($datetime)."'"
dans la partie PHP, la page me renvoit bien mes données de temps (idem pour température et humiditée). donc tout ça fonctionne bien.

par contre

<script type="text/javascript" >
eval(<?php echo "'var datetime = ".json_encode($datetime)."'" ?>);
eval(<?php echo "'var humidity = ".json_encode($humidity)."'" ?>);
eval(<?php echo "'var Tlocale = ".json_encode($Tlocale)."'" ?>);
</script>

ne fonctionne pas.

Bien sur j'ai inséré d'autre script javascript type "hello world" a la place et cela est bien affiché; donc pas de pb coté nanvigateur / serveur...
j'ai un peu tout essayé et je ne vois pas bien d'ou peu venir le pb...

Un grand merci d'avance pour votre aide !

E Bondoux


résultat de la page (le script de test fonctionne bien) :

" Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp64\www\bonjour.php on line 4"
test javascript

voici le code complet de la page php (c'est une page phb enregistrée sous data.php
il n'y a rien d'autre que ça. Elle est sous la racine de mon serveur wamp et j'utilise chrome (idem avec opera).


<?php

mysql_connect('localhost','root','') or die(mysl_error());
mysql_select_db('weatherdata');
$sql = "SELECT max(datetime) FROM weatherdata ";
$query=mysql_query($sql);
$list=mysql_fetch_array($query);

$stop=$list[0];
$start=$stop-(86400*2);//86400=24 heures donc 86400*2=48 heures

$sql = "SELECT datetime, humidity, Tlocale
FROM weatherdata where datetime >= '$start' and datetime <= '$stop' ORDER BY 1";
$query=mysql_query($sql);
$i=0;

while ($list = mysql_fetch_assoc($query))
{
if (date("I",time())==0)
{
$datetime[$i]=($list['datetime']+3600)*1000;
}
else
{
$datetime[$i]=($list['datetime']+7200)*1000;
}
$humidity[$i]=$list['humidity']*1;
$Tlocale[$i]=$list['Tlocale']*1;
$i++;
}
//test pour affichage des données : ok
//echo "'var datetime = ".json_encode($datetime)."'"

?>

<script type="text/javascript" >

eval(<?php echo "'var datetime = ".json_encode($datetime)."'" ?>);
eval(<?php echo "'var humidity = ".json_encode($humidity)."'" ?>);
eval(<?php echo "'var Tlocale = ".json_encode($Tlocale)."'" ?>);

</script>

<script>
document.write("test javascript");
</script>

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par jturlier » 11 mai 2016, 17:33

ebondoux a écrit : le ode n'est pas en ligne sur un serveur public, j'utilise wamp sur un réseau local (et pour le moment en local sur ma machine pour le dev).
Tu peux facilement résoudre ce problème en mettant en ligne ton site local Apache avec NoIP qui te permet de créer une URL pour un site distant, et en l'associant à l'IP publique de ta machine. Cette fonction de base est gratuite, la contrainte c'est que tu dois valider tous les mois ton URL.
Pour que cela fonctionne, il faut aussi que ta box soit configurée pour associer son port 80 au port 80 de la machine qui héberge Wamp.
Pour info, l'un de mes sites (...ddns.net) est sous NoIP (version payante) avec Neufbox NB6, ça ne fonctionne pas avec la NB4, mais SFR la remplace si on leur explique le problème
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

alain
Messages : 101
Enregistré le : 21 nov. 2014, 20:23

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par alain » 11 mai 2016, 17:50

bonjour

Code : Tout sélectionner

mysql_connect('localhost','root','') or die(mysl_error());
c'est bon ça?
alors que je crois comprendre qu'il y a un retour de message d'erreur

Code : Tout sélectionner

" Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp64\www\bonjour.php on line 4"
test javascript
avec les version récence essayez
mysqli

par contre essayez Uwamp sur clé USB permet a la volée de changer de version d'apache mysql et php
Sans Installation
UwAmp est disponible sous forme d'archive compressée, vous décompressez et vous lancez le serveur.

Interface Simple
UwAmp est fournie avec une interface de gestion vous permettant de demarrer ou d'arréter le serveur en un clic.

Multi Version de PHP
Changez la version de PHP en un clic, UwAmp fonctionne avec un système de dépot directement connecté avec le site officiel de PHP

Monitoring CPU
Affichage en temps réel avec graphique de l'utilisation CPU des processus Apache et MySQL.

Mode U3
Peut être lancé depuis une clé USB.

http://www.uwamp.com/fr/
station Orégon WMR 200
logiciel Xnet version 2012-03-17a et Graphweather V 3.0.15
windows XP SP3 sur vieux portable destiné a la météo
Windows7 sur mon portable, permet de tester les applications qui ne veulent plus de XP
http://mapetitemeteo.esy.es/

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

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par Météo Villarzel » 11 mai 2016, 23:04

tu peux essayer avec ce code que j'ai repris d'un de mes graphique

Code : Tout sélectionner

<?php 

mysqli_connect('localhost','root','') or die(mysli_error());
mysqli_select_db('weatherdata');
$sql = "SELECT max(datetime) FROM weatherdata ";
$query=mysqli_query($sql);
$list=mysqli_fetch_array($query);

$stop=$list[0];
$start=$stop-(86400*2);//86400=24 heures donc 86400*2=48 heures

$sql = "SELECT datetime, humidity, Tlocale FROM weatherdata where datetime >= '$start' and datetime <= '$stop' ORDER BY 1"; 
$query=mysqli_query($sql); 
$i=0;

while ($list = mysqli_fetch_array($query))
{ 
if (date("I",time())==0)
{ 
$dtime[$i]=($list['datetime']+3600)*1000;
} 
else 
{
$dtime[$i]=($list['datetime']+7200)*1000;
} 
$humidity[$i]=$list['humidity']*1;
$Tlocale[$i]=$list['Tlocale']*1;	
$i++;
} 
//test pour affichage des données : ok
//echo "'var datetime = ".json_encode($datetime)."'" 

?>

<script type="text/javascript" > 

eval(<?php echo "'var dtime = ".json_encode($dtime)."'" ?>);
eval(<?php echo "'var humidity = ".json_encode($humidity)."'" ?>);
eval(<?php echo "'var Tlocale = ".json_encode($Tlocale)."'" ?>);

</script>
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

ebondoux
Messages : 3
Enregistré le : 10 mai 2016, 16:31

Re: Probleme avec le tutoriel "Tutoriel MySQL - Highchart

Message par ebondoux » 29 mai 2016, 12:20

Bonjour Et merci pour cette réponse,

je n'ai pas eu le temps de repasser ces derniers temps mais j'ai fini par trouver. Le code ne fonctionnait pas avec la librairie installée sur mon pc.
j'ai donc utilisé des liens vers des librairies en ligne et là au miracle tout a fonctionné.
Sans y parvenir avec mon pc windows et les librairies en locale, j'ai migré sur un raspberry Pi et cela fonctionne parfaitement...
Je pense donc que mon problème vient du PC mais je n'arrive pas comprendre.
On verra ça quand j'aurais du temps.
En tout cas merci pour votre support et pour tout le travail de mise à disposition des informations !!!

Bonne journée

Erick

Répondre