JpGraph

Résolu
martial_zero Messages postés 67 Statut Membre -  
 SuperPoney -
Bonjour,
je viens de lire un tutoreil sur le JpGraph
care je travaille ds un call center et j aimerai bien appliqué ces examples ds mon travail
sauf que j arrive meme pas à excecuter ce petit code source juste pour voir qu est ce que ca donne je vous passe le script et le message d 'erreur.

1-script :
<?php
// ********************************************************************
// PARTIE : Includes et initialisation des variables
// ********************************************************************
// Inclusion de la librairie JpGraph
include ("../tutogpgraph/src/jpgraph.php");

include ("../tutogpgraph/src/jpgraph_pie.php");
// Constantes (connection mysql)
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'graph');
// Tableaux de données destinées à JpGraph
$tableauAnnees = array();
$tableauNombreVentes = array();
// ********************************************************************
// PARTIE : Production des données avec Mysql
// ********************************************************************
$sql = <<<EOF
SELECT
YEAR(`DTHR_VENTE`) AS ANNEE,
COUNT(ID) AS NBR_VENTES
FROM `ventes`
GROUP BY YEAR(`DTHR_VENTE`)
EOF;
// Connexion à la BDD
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
// Sélection de la base de données
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
// Requête
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
// Fetch sur chaque enregistrement
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
// Alimentation des tableaux de données
$tableauAnnees[] = 'Année ' . $row['ANNEE'];
$tableauNombreVentes[] = $row['NBR_VENTES'];
}
// ********************************************************************
// PARTIE : Création du graphique
// ********************************************************************
// On spécifie la largeur et la hauteur du graphique conteneur
$graph = new PieGraph(400,300);
// Titre du graphique
$graph->title->Set("Volume des ventes par années");
// Créer un graphique secteur (classe PiePlot)
$oPie = new PiePlot($tableauNombreVentes);
// Légendes qui accompagnent chaque secteur, ici chaque année
$oPie->SetLegends($tableauAnnees);
// position du graphique (légèrement à droite)
$oPie->SetCenter(0.4);
$oPie->SetValueType(PIE_VALUE_ABS);
// Format des valeurs de type entier
$oPie->value->SetFormat('%d');
// Ajouter au graphique le graphique secteur
$graph->Add($oPie);
// Provoquer l'affichage (renvoie directement l'image au navigateur)
$graph->Stroke();
?>
2-message d 'erreur:
JpGraph Error: HTTP headers have already been sent.
Caused by output from file jpgraph.php at line 72.
le fichier jpgraph.php est le suivant jusqu à la ligne 78
<?php
//=======================================================================
// File: JPGRAPH.PHP
// Description: PHP Graph Plotting library. Base module.
// Created: 2001-01-08
// Ver: $Id: jpgraph.php 1076 2008-09-19 15:43:22Z ljp $
//
// Copyright 2006 (c) Aditus Consulting. All rights reserved.
//========================================================================

require_once('jpg-config.inc.php');
require_once('jpgraph_errhandler.inc.php');
require_once('gd_image.inc.php');
require_once('jpgraph_ttf.inc.php');
require_once 'jpgraph_gradient.php';

// Version info
DEFINE('JPG_VERSION','1.26.1-dev');

// Minimum required PHP version
DEFINE('MIN_PHPVERSION','4.3.1');

//------------------------------------------------------------------------
// Automatic settings of path for cache and font directory
// if they have not been previously specified
//------------------------------------------------------------------------
if(USE_CACHE) {
if (!defined('CACHE_DIR')) {
if ( strstr( PHP_OS, 'WIN') ) {
if( empty($_SERVER['TEMP']) ) {
$t = new ErrMsgText();
$msg = $t->Get(11,$file,$lineno);
die($msg);
}
else {
DEFINE('CACHE_DIR', $_SERVER['TEMP'] . '/');
}
} else {
DEFINE('CACHE_DIR','/tmp/jpgraph_cache/');
}
}
}
elseif( !defined('CACHE_DIR') ) {
DEFINE('CACHE_DIR', '');
}

if (!defined('TTF_DIR')) {
if (strstr( PHP_OS, 'WIN') ) {
$sroot = getenv('SystemRoot');
if( empty($sroot) ) {
$t = new ErrMsgText();
$msg = $t->Get(12,$file,$lineno);
die($msg);
}
else {
DEFINE('TTF_DIR', $sroot.'/fonts/');
}
} else {
DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/truetype/');
}
}

if (!defined('MBTTF_DIR')) {
if (strstr( PHP_OS, 'WIN') ) {
$sroot = getenv('SystemRoot');
if( empty($sroot) ) {
$t = new ErrMsgText();
$msg = $t->Get(12,$file,$lineno);
die($msg);
}
else {
DEFINE('TTF_DIR', $sroot.'/fonts/');
}
} else {
DEFINE('MBTTF_DIR','/usr/share/fonts/ja/TrueType/');
}
}

merci d avance pou votre aide

4 réponses

martial_zero Messages postés 67 Statut Membre 5
 
salut :-))))))))))))))))))))))))))))
J'ai trouvé une solution à mon problème : j'ai remplacé mon

$graph->Stroke();

par

$graph->Stroke("graph.png");
echo "<img src='graph.png' />";

de tt facon je suis content pour ca
je vous demande seulement si vous avez d autr tuto sur pcchart qui fait plus au moin le meme travail que
jpgr(aph merci pour votre aide
5
sahoumita Messages postés 55 Statut Membre
 
Bonjour,
J'ai eu le meme probleme ke toi et j'ai beaucoup cherché mais je n'apas trouvé de solution.
Mais heureusement,et grace à toi j'ai pu rédoudre mon probleme,donc je veux juste te remercier pour avoir pris la peine de donner la solution à ce probleme genant.

Je veux juste te proposer de signaler ce probleme comme "résolu"
0
symff Messages postés 24 Statut Membre
 
Je ne sais pas si vous allez encore suivre ce post mais je tente !

J'ai un pb avec JpGraph, rien ne s'affiche sur ma page.

J'appelle :
<img src='include/fichier.php' alt='Graphique'/>


et mon fichier.php:
<?php header("Content-type: image/png"); ?>
<?php include_once('include/jpgraph/src/jpgraph.php'); ?>
<?php include_once('include/jpgraph/src/jpgraph_line.php'); ?>
<?php
$ydata = array(6,5,25,12,5,10,32,13,5,21);
$graph = new Graph(300,200);   
$graph->SetScale("textlin");
$lineplot=new LinePlot($ydata);
$graph->Add($lineplot);
$graph->Stroke("graph.png");
echo "<img src='graph.png' />"; 
?>


Et je n'ai aucune erreur, donc je ne sais pas pourquoi ça ne marche pas !
Où est-ce qu'il enregistre graph.png?
0
SuperPoney
 
Salut symff
J'ai eu le même soucis que toi et j'ai réussi à afficher mon graphique en remplaçant

<img src='include/fichier.php' alt='Graphique'/>

par

<?php require_once('include/fichier.php');?>

Dans l'appel de ton fichier.

En espérant t'avoir aidé.
0
SuperPoney
 
Je rectifie, il ne faut pas pas "remplacer" mais "ajouter" cette ligne xD
0