Réalisation 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 - 27 avril 2008 à 11:58
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008 - 27 avril 2008 à 20:03
Bonjour,

je souhaite réaliser en php un graphique selon des données enregistrés dans ma base de données.
Mais j'obtient une erreur depuis des semaines et la fin de mon projet arrive bientot donc j'ai réellement besoin d'aide.

Mon erreur est celle-ci : Empty input data array spécified for plot. Must have at least one data point

Pouvez-vous me dire quelle est la cause de cette erreur...

Si vous avez besoin de l'integréalité de mon code...veuillez me le dir et je vous le fait parvenir sans problème..

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 16:54
Hello,

tu as passé à une méthode de JPGraph un tableau vide en paramètre (la ligne doit être précisée dans l'erreur).
0
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
27 avril 2008 à 18:25
heuu comment sa un tableau vide je vois pa...???
Et non la ligne n'est pas précisé...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 avril 2008 à 18:29
Ben un tableau vide. C'est ton code, pas le mien hein. Là où ton code s'arrête en lançant l'erreur, cela veut dire que tu appelles une méthode de jpgraph avec un tableau vide comme paramètre. Si toi tu ne vois pas quand tu fais ça...il y a peu d'espoir, parce que tu es le seul à avoir ton code et l'erreur et le moment ou l'erreur arrête ton code, sous les yeux.
0
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
27 avril 2008 à 20:03
A la rigeur je te fait parvenir mon code é tu me di ske ten pense...
en mm temps je vais mètre des alerts un peu partour é jte diré ou le programme sarrète...

Voici le code:

<?php
require_once ("jpgraph.php");
require_once ("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";

$connect=mysql_connect('localhost','azzouz','azzouz','utilisateur') or die("Impossible de se connecter !!");      //Connexion à la base de données
if($connect == true)
{

 mysql_select_db($bdd) or die("Erreur de connexion à la base de donnees");
 $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,enceinte WHERE heure<".$t."+3600 AND heure>=".$t." AND temperature.idenceinte = enceinte.idenceinte 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_consigne'];  // Stock les valeurs des points de consignes temperature
 {
 }
 $graph=new Graph(425,250);    //Dimension de l'image en sortie
 $graph->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();

}
?>
0