Regarde dans les logs de ton serveur pour voir le message d'erreur qui provoque celà.L’image « h t t p://127.0.0.1/...../jpgraph_courbe_5.php » ne peut être affichée car elle contient des erreurs.
Code : Tout sélectionner
<?php
/*
Ce fichier de travail en l'état fonctionne bien. (avec la bdd qui va bien évidemment)
fichier mis sur la racine du site.
Il suffit de mettre un fichier de config de la bdd ailleurs, exemple pour moi ./protegepw/config.loc.php
et ca ne fonctionne plus :
a) sans utiliser le fichier de confiquration
b) en l'utilisant (avec les midifications qui en découlent sur @mysql_connect, @mysql_select_db)
Fichier de config non fourni ici qui donne :
$host = '127.0.0.1';
$user = 'root';
$pass = '';
$bdd = 'bdd';
*/
// require_once "./protegepw/config.loc.php"; // fichier non fourni pour l'exemple
require_once("./src/jpgraph.php");
require_once("./src/jpgraph_line.php"); // = courbe
define('MYSQL_HOST', '127.0.0.1');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'bdd'); // la base de données
$table = "domotique"; // nom de la table
// **********************************************
// Extraction des données dans la base de données
// *************************************************
// on crée la requête SQL
$sql = "SELECT date, temperature FROM $table";
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connexion mysql');
@mysql_select_db(MYSQL_DATABASE) or die('Pb de selection de la base');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requete');
$nombre = 0;
while ($row_mois = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) { // MYSQL_ASSOC ???
$nombre = $nombre + 1;
if (($nombre % 5) == 1) {
$date = date( "d/m/y H:i:s ", strtotime($row_mois['date'])); // on convertit la date dans un format français
}else{
$date = '';
}
$tempera = $row_mois['temperature'];
$moisFr[] = $date;
$donnees[] = $tempera ;
// test d'affichage sans la courbe (fonctionne)
// provoque erreur echo " ".$date.' temperature = '.$row_mois['temperature'].'</br>';
}
mysql_close(); // On ferme la connexion à la base de données //-->
// provoque erreur si pas de goto echo " ".' temperature = '.$tempera.'</br>';
// provoque erreur si pas de goto echo " ".$moisFr[5].' et '.$donnees[5].'</br>'; // pour un test
// provoque erreur si pas de goto printf('<pre>%s</pre>', print_r($moisFr,1));
// provoque erreur si pas de goto printf('<pre>%s</pre>', print_r($donnees,1));
//goto fin; // pour ne tester que la bdd
// Création du conteneur
$graphe = new Graph(1000,500); // ($largeur, $hauteur)
// Fixer les marges
$graphe->img->SetMargin(70,10,10,140); // G, D, H, B
// Désactiver le cadre autour du graphique //sans effet ?
$graphe->SetFrame(false);
// Lissage sur fond blanc (évite la pixellisation) //sans effet ?
$graphe->img->SetAntiAliasing("white");
// Valeurs min et max seront determinees automatiquement
$graphe->setScale("textlin");
// Creation de la courbe
$courbe = new LinePlot($donnees); // courbe des températures
// Chaque point de la courbe ****
// Type de point
$courbe->mark->SetType(MARK_FILLEDCIRCLE);
// Couleur de remplissage du cercle
$courbe->mark->SetFillColor("green");
// Taille des cercles, diamètre
$courbe->mark->SetWidth(3);
// Paramètrage des axes
$graphe->xaxis->SetTickLabels($moisFr);
// Ajout de la courbe au graphique
$graphe->add($courbe); // courbe
$graphe->xaxis->SetLabelAngle(90); // abcisse en 90° vertical
// Apparence de la police
$graphe->title->SetFont(FF_ARIAL,FS_BOLD,11);
// Ajout du titre du graphique
$graphe->title->set("Températures extérieures à PERSAN");
// Titre pour l'axe horizontal(axe x) et vertical (axe y)
$graphe->xaxis->title->SetMargin(110);
$graphe->xaxis->title->Set("Géryko");
$graphe->yaxis->title->Set("température en °C");
$graphe->yaxis->title->SetMargin(15);
$graphe->xaxis->title->SetFont(FF_ARIAL,FS_BOLD);
$graphe->yaxis->title->SetFont(FF_ARIAL,FS_BOLD);
// Affichage du graphique
$graphe->stroke();
fin:
?>