Realisation de graphique en php

cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008 - 20 mars 2008 à 15:03
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008 - 20 mars 2008 à 16:25
Bonjour!!!
Voila je desirerais realiser un graphique en php selon les données inscris dans ma base de données.
Voila la liste de toutes mes tables :
- Table 'temperature' : idtemp , idenceinte , temp , depassement , minute , heure , date , num_enceinte
- Table 'enceinte' : idenceinte , idlocal , num_enceinte , num_capteur , num_local , temp_consigne
- Table 'local' : idlocal , idniveau , num_local , num_niveau , nb_enceinte
- Table 'niveau' : idniveau  , num_niveau , nb_local

Comme vous le voyez, chacune des tables contient une clé primaire mais surtout une clé étrangère de la table suivante
J'utilise les clés étrangères parce que concrètement je voudrais , consulter les températures d'une enceinte (une enceinte se trouve dans un local, et un local se situe dans un niveau)

Sur ma page l'utilisateur doit saisir le niveau, le local, l'enceinte , l'heure et une date.

Maintenant le plus important, voici mon code :

<?php
require_once ("./jpgraph14/jpgraph.php");
require_once ("./jpgraph14/jpgraph_line.php");
include("config.php");

$num_niveau = $_POST['num_niveau'];
$num_local = $_POST['num_local'];
$num_enceinte = $_POST['num_enceinte'];
$heure = $_POST['heure'];
$jour = $_POST['jour'];
$mois = $_POST['mois'];
$annee = $_POST['annee'];

if ($jour <10)
{
  $reqjour = "0$jour";
}
else
{
  $reqjour = $jour;
}

if ($mois <10)
{
  $reqmois = "0$mois";
}
else
{
  $reqmois = $mois;


if ($heure < 10)
{
  $reqheure = "0$heure";
}
else
{
  $reqheure = $heure;
}

$date_requete = "$annee-$reqmois-$reqjour";  // On construit la variable à envoyer a la requete pour avoir une variable de type Date (MySQL)

$host="localhost";
$bdd="inbp";

$t=mktime(0,0,0,date('h'),date('j'),date('m'));  //Donne l'heure, le jour et le mois

for($v=0;$v<24;$v++)
{
 $query=mysql_query("SELECT AVG(temp) FROM temperature WHERE heure<".$t."+3600 AND heure>=".$t." AND num_enceinte='$num_enceinte") or die (mysql_error());  //Recupère la moyenne des températures acquise dans l'heure courante

 $result=mysql_result($query,0);  //Transforme la ressource en un résultat exploitable

 $ydata[]=$query;    //Stock dans un tableau les valeurs des points en y
 $t=$t+3600;
}

$query2=mysql_query("SELECT temp_consigne FROM enceinte,temperature WHERE enceinte.idenceinte = temperature.idenceinte ");

while($result=mysql_fetch_assoc($query2))
{
 $ydata2[]=$result['temp'];  // Stock les valeurs des points de consignes temperature
}

$graph=new Graph(425,250);    //Dimension de l'image en sortie
$grap->SetMarginColor("#fef7e5");

$graph->SetBackgroundImage("blanc.gif",3);     //Affichage d'une image  derrière le graphique
$graph->SetScale("lin",0,50,0,23);     //Type de courbe lineaire   Y de 0 à 50   X de 0 à 23 point
$graph->SetY2Scale("lin",0,100,0,100);
$graph->img->SetMargin(60,60,20,70);    //Augmente les marges au graphique
$graph->img->SetAntiAliasing("black");

$graph->yaxis->SetColor("blue");      //Couleur des axes
$graph->y2axis->SetColor("red");
$graph->SetShadow();     //Affiche une ombre au graphique

$graph->yaxis->scale->ticks->Set(10,5);
$graph->y2axis->scale->ticks->Set(10,5);

$lineplot=new LinePlot($ydata);            //Création des courbes
$lineplot2=new LinePlot($ydata2);

$lineplot->Setcolor("blue");    //Couleur de la courbe n°1
$lineplot->SetWeight(2);        //Epaisseur de la courbe n°1
$lineplot2->SetColor("red");
$lineplot2->SetWeight(2);

$lineplot->SetLegend("Temperature de l'enceinte");        //Axe Y1
$lineplot2->SetLegend("Temperature de consigne");         //Axe Y2

$graph->Add($lineplot);      //Ajout des courbes au graphique
$graph->Add($lineplot2);

$graph->title->Set("Enceinte ".$_POST['num_enceinte']."");     //Paramétrages des légendes des axes et du titre du graphique
$graph->xaxis->title->Set("Heures");
$graph->yaxis->title->Set("T°C");
$graph->y2axis->SetTitleMargin(-35);

$graph->title->SetFont(FF_FONT1,FS_BOLD);     //Mise en forme des différentes légendes
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->y2axis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph->legend->Pos(0.5,0.5,"right","center");     //Ajuste la position de la légende
$graph->legend->SetLayout(LEGEND_HOR);
$graph->legend->Pos(0.5,0.97,"center","bottom");

$graph->Stroke();

?>

Ce code , je l'ai récuperé dans ancien elève qui avait a peu pré la même mission que moi, et j'ai modifier ce code selon mon cahier des charges.

Tous 1er souci...quand j'execute le code je reçois ceci :


Warning : require_once(./jpgraph14/jpgraph.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP 2.0b1\www\requete_temp.php on line 2

Fatal error: require_once() [function.require]: Failed opening required './jpgraph14/jpgraph.php' (include_path ='.;C:/Program Files/EasyPHP 2.0b1\php5\pear\') in C:\Program Files\EasyPHP 2.0b1\www\requete_temp.php on line 2

Pouvez vous me dire pourquoi? Où puis-je trouver ces fichiers?

3 réponses

cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
20 mars 2008 à 15:19
En ce qui concerne les codes de connexion...je ne les ai pas mis mais je les ai fait donc ne vous en faites pas
0
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
20 mars 2008 à 15:23
c'est bon j'ai trouvé en ce qui concerne les fichiers jpgraph.php...etc...
Maintenant j'ai une autre erreur...:
Erreur de syntaxe près de ''1' à la ligne 1

Pouvez-vous m'aider??? svp
0
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
20 mars 2008 à 16:25
J'ai de nouveau repondu à ma propre question...
Par contre j'ai de nouveau un problème et celui la sa m'etonnerais que je le trouve seul...
Je reçois cette erreur:         

L'image "http://localhost/requete_temp.php" ne peut être affichée car elle contient des erreurs

J'ai mis des echo partout pour voir jusqu'ou le code s'executait, mais aucun ne s'affiche!!!

J'ai besoin de vous!!!
please
0
Rejoignez-nous