Désolé c'est encore moi Smiley smile

voila je doit generer des graphs depuis un db alors j'ai deja contruit une partis de mon script qui ressemble a ceci:

<?php
include ("src/jpgraph.php");
include ("src/jpgraph_pie.php");
include ("src/jpgraph_bar.php");

include("../include/connection.php");



//Lecture de la data base

//$mysql_select_db ($dbb);

                            $sql = 'select'
        . ' YEAR(FROM_UNIXTIME(History.eventdate)) as Year,'
        . ' MONTH(FROM_UNIXTIME(History.eventdate)) as Month,'
        . ' Devices.name as DeviceName,'
        . ' Interfaces.name as InterfaceName,'
        . ' Devices.name2 as devicesName2,'
        . ' Interfaces.description as InterfaceDesc,'
        . ' SUM(case StatusTypes.name when \'Normal\' then 1 else 0 end) as Normal,'
        . ' SUM(case StatusTypes.name when \'Minor\' then 1 else 0 end) as Minor,'
        . ' SUM(case StatusTypes.name when \'Major\' then 1 else 0 end) as Major,'
        . ' SUM(case StatusTypes.name when \'Critical\' then 1 else 0 end) as Critical'
        . ' from'
        . ' History'
        . ' inner join StatusTypes on History.statusid = StatusTypes.id'
        . ' inner join Cells on History.cellid = Cells.id'
        . ' inner join Interfaces on Cells.interfaceid = Interfaces.id'
        . ' inner join ServiceTypes on Cells.serviceid = ServiceTypes.id'
        . ' inner join Devices on Interfaces.deviceid = Devices.id'
        . ' where'
        . ' ServiceTypes.name = \'SNR\''
        . ' group by'
        . ' YEAR(FROM_UNIXTIME(History.eventdate)),'
        . ' MONTH(FROM_UNIXTIME(History.eventdate)),'
        . ' Devices.name,'
        . ' Interfaces.name,'
        . ' Interfaces.description'
        . ' ';

$resultat = mysql_query ($sql);

while($row = mysql_fetch_array($resultat))
{
$data[] = $row[1];
$leg[] = $row[0];
}
$graph = new Graph(800,600,"auto"); // largeur , hauteur, utilisation du cache
$graph->SetScale("textint"); 
$graph->img->SetMargin(50,30,50,150); // marge gauche, droite, haut, bas
 

// Ajuster la couleur à l'ombre de la légende
$graph->legend->SetShadow('darkgray@0.5');
$graph->legend->SetFillColor('lightblue@0.3');

// Caractéristiques des barres de l'histogramme
$bplot = new BarPlot($data); // crée les histogrammes à partir d'un array préalablement défini
	
$graph->Add($bplot);
$graph->Stroke(); 

 
?>


Mais je ne comprend pas comment je doit inclure les donnée dans le graph:
j'airais besoin d'explication Merci d'avance
Bonjour,

en essyant de me renseigner sur le sujet pour t'aider je suis tomber sur ce site Qui renvoi vers la docs anglaise donc qui pourrai te renseigner.

Mais aussi et surtout vers des exemples d'utilisations avec le code sources utilisé pour fabriquer les exemples : lien vers les exemples

Et je pense que en regardant les exemples proposer par le site tu pourras bien sur trouver ta reponse.
justement jsuis sur ce site depuis 2 jours et pas moyen de piger le truc pour recuperer les données de db pour generer le graph
Ton graphique devrai ressembler au quel sur le site ? et tu es sur que tu as bien des donners dans ton tableau ?

Tu pourrais donner une petit liste pour faire des testes ?
Salut à vous,

Voici une bonne méthode de création de graphique que je viens de découvrir.
Tu génères un graphique en flash de manière très rapide, soit grace a ton code PHP ou tu peux le générer grace à du XML (tu devras cependant injecter les données de ta BDD dans les fichiers XML).

Je vous laisse découvrir.... Smiley smile

Génération avec XML : http://www.maani.us/xml_charts/index.php

Génération avec PHP : http://www.maani.us/charts/index.php

Voila !! A+

Akita95 Smiley biggrin
Modifié par Akita95 (06 Sep 2007 - 13:49)
Hello

Alors j'ai repris les choses autrements.

J'ai pris une classe celle ci


<?php
 $path = 'font/';

class Graph {
  public $coul_fond;
  public $cool_axes;
  public $coul_lignes;
  public $coul_legendes;
  public $coul_barres;
  public $coul_oranges;
  public $image;
  public $font ='verdana.ttf';
  public $abs ="mois";
  public $ord ="DeviceName";
  public $donnees;

  public function __construct ($largeur, $hauteur, $font = 'verdana') {
  $this->image = Imagecreate ($largeur, $hauteur);
  if ($this->image===false) throw new Exception ();
  $this->coul_fond = ImageColorAllocate ($this->image, 208, 216, 213);
  $this->coul_axes = ImageColorAllocate ($this->image, 11, 62, 43);
  $this->coul_lignes = ImageColorAllocate ($this->image, 227, 235, 232);
  $this->coul_legendes = ImageColorAllocate ($this->image, 11, 62, 43);
  $this->coul_barres  = ImageColorAllocate ($this->image, 42, 124, 94);
  $this->coul_orange = ImageColorAllocate ($this->image, 207, 140, 53);
  $this->font = $font;

}
public function enregistre_donnee ($datas){
  $this->donnees = $datas;
}

public function cree_image() {
  imageLine ($this->image, 30, 30, 30, 190,$this->coul_axes);
  imageLine ($this->image, 30, 190,320, 190,$this->coul_axes);

$tab_fleche_ord = array (30, 30, 26, 34, 34, 34);
$tab_fleche_abs = array(320, 190, 316, 186, 316, 194);

imagefilledpolygon ($this->image, $tab_fleche_ord, 3, $this->coul_axes);
imagefilledpolygon ($this->image, $tab_fleche_abs, 3, $this->coul_axes);

ImageTTFText ($this->image,10,0,5,20, 
              $this->coul_legendes, $this->font, $this->ord);
ImageTTFText ($this->image,10,0,280,180,
              $this->coul_legendes, $this->font, $this->abs);

imageline ($this->image,26,190,30,190,$this->coul_axes);
imageline ($this->image,26,155,30,155,$this->coul_axes);
imageline ($this->image,26,120,30,120,$this->coul_axes);
imageline ($this->image,26,85,30,85,$this->coul_axes);
imageline ($this->image,26,50,30,50,$this->coul_axes);

ImageTTFText ($this->image,8,0,6,190,
              $this->coul_legendes, $this->font,"0");
ImageTTFText ($this->image,8,0,6,155,
              $this->coul_legendes, $this->font,"5");
ImageTTFText ($this->image,8,0,6,120,
              $this->coul_legendes, $this->font,"10");
ImageTTFText ($this->image,8,0,6,85,
              $this->coul_legendes, $this->font,"15");
ImageTTFText ($this->image,8,0,6,50,
              $this->coul_legendes, $this->font,"20");

imageline ($this->image,31,155,320,155,$this->coul_lignes);
imageline ($this->image,31,120,320,120,$this->coul_lignes);
imageline ($this->image,31,85,320,85,$this->coul_lignes);
imageline ($this->image,31,50,320,50,$this->coul_lignes);

imagefilledrectangle ($this->image, 40,(20-$this->donnees[0])*7+50, 110, 189, $this->coul_barres);
imagefilledrectangle ($this->image, 120,(20-$this->donnees[1])*7+50, 190, 189, $this->coul_barres);
imagefilledrectangle ($this->image, 200,(20-$this->donnees[2])*7+50, 270, 189, $this->coul_barres);

ImageTTFText ($this->image,10,0,50,180,$this->coul_orange, 
              $this->font, $this->donnees[0]);
ImageTTFText ($this->image,10,0,130,180,$this->coul_orange, 
              $this->font, $this->donnees[1]);
ImageTTFText ($this->image,10,0,210,180,$this->coul_orange, 
              $this->font, $this->donnees[2]);

}

public function genere_image () {
 // header ("Content-type: image/png");
  ImagePng ($this->image);
}
}
?>


ensuite j'ai créer ma page php
qui donne ceci:

<?php
include ("class_grap.inc.php");

//include ("src/jpgraph.php");
//include ("src/jpgraph_pie.php");
include("../include/connection.php");



//Lecture de la data base

//$mysql_select_db ($dbb);

                            $sql = 'select'
        . ' YEAR(FROM_UNIXTIME(History.eventdate)) as Year,'
        . ' MONTH(FROM_UNIXTIME(History.eventdate)) as Month,'
        . ' Devices.name as DeviceName,'
        . ' Interfaces.name as InterfaceName,'
        . ' Devices.name2 as devicesName2,'
        . ' Interfaces.description as InterfaceDesc,'
        . ' SUM(case StatusTypes.name when \'Normal\' then 1 else 0 end) as Normal,'
        . ' SUM(case StatusTypes.name when \'Minor\' then 1 else 0 end) as Minor,'
        . ' SUM(case StatusTypes.name when \'Major\' then 1 else 0 end) as Major,'
        . ' SUM(case StatusTypes.name when \'Critical\' then 1 else 0 end) as Critical'
        . ' from'
        . ' History'
        . ' inner join StatusTypes on History.statusid = StatusTypes.id'
        . ' inner join Cells on History.cellid = Cells.id'
        . ' inner join Interfaces on Cells.interfaceid = Interfaces.id'
        . ' inner join ServiceTypes on Cells.serviceid = ServiceTypes.id'
        . ' inner join Devices on Interfaces.deviceid = Devices.id'
        . ' where'
        . ' ServiceTypes.name = \'SNR\''
        . ' group by'
        . ' YEAR(FROM_UNIXTIME(History.eventdate)),'
        . ' MONTH(FROM_UNIXTIME(History.eventdate)),'
        . ' Devices.name,'
        . ' Interfaces.name,'
        . ' Interfaces.description'
        . ' ';

$resultat = mysql_query ($sql);
$i = 1;
while ($tmp = mysql_fetch_array ($resultat)) {
       $tab[$tmp['Month'] - 1]  += $tmp['DeviceName'];
       $i++; 
}

$nb_snr = $i /2;

for ($i =0; $i < 2; $i++){
$tab[$i] = number_format ($tab[$i] / $nb_snr,1);
}

try {
  $mongraph = new Graph(340,220);
  $mongraph->enregistre_donnees($tab);
  $momgraph->cree_image();
  $mongraph->genere_image();
}
catch  (Exception $e) { die ('erreur'); }
?>


maintenant allez savoir ce qui ce passe j'ai ceci comme erreur:
Fatal error: Call to undefined method Graph::enregistre_donnees() in /var/www/monitoring/historique/graphsnr.php on line 57

Un vague idée ?