Bonjour, j'ai un petit problème avec des graphiques, pour afficher des graphiques j'ai choisis d'utiliser la librairie jpGraph. Et pour générer ce graphique j'utilise des valeurs qui proviennent de ma base de données. Mon problème c'est que j'ai une erreur qui s'affiche: Erreur 'Illegal Pie Plot. Sum of all data is zero for Pie.'
Je sais pourquoi cette erreur s'affiche mais je sais pas comment le résoudre. Ce que je veux créer c'est un camembert qui permet d'afficher la répartition de mes projets en fonction du service choisis (en l'occurence le service est analyse). CErtes il y a des projets qui n'appartiennent pas au service, mais comment afficher juste les projets qui appartiennent à ce service?
Voici le code que j'ai fait pour l'instant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
<?php
include ("/jpgraph/jpgraph.php");
include ("/jpgraph/jpgraph_pie.php");
include ("/jpgraph/jpgraph_pie3d.php");
 
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'fichetemps');
 
$tableauService = array();
$tableauProjet = array();
 
// *****************************************************
// Extraction des données dans la base de données 
// **************************************************
 
$sql = <<<EOF
	SELECT  
		nom_service, nom_projet	FROM `projet` WHERE nom_service = 'analyse'
	
EOF;
 
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
 
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
 
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
 
while ($row = mysql_fetch_array($mysqlQuery,  MYSQL_ASSOC)) {
	// Ajouter année devant, c'est pour la légende
	$tableauProjet[] = "projet " . $row['nom_projet'];
	$tableauService[] = $row['nom_service'];
}
 
// **************************************
// Création du graphique
// *****************************************
 
// On spécifie la largeur et la hauteur du graph
$graph = new PieGraph(1200,600);
 
// Ajouter une ombre au conteneur
$graph->SetShadow();
 
// Donner un titre
$graph->title->Set("Répartition des projets par service");
 
// Quelle police et quel style pour le titre
// Prototype: function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10)
// 1. famille
// 2. style
// 3. taille
$graph->title->SetFont(FF_GEORGIA,FS_BOLD, 12);
 
// Créer un camembert 
$pie = new PiePlot3D($tableauProjet);
 
// Quelle partie se détache du reste
$pie->ExplodeSlice(2);
 
// Spécifier des couleurs personnalisées... #FF0000 ok
$pie->SetSliceColors(array('red', 'blue', 'green'));
 
// Légendes qui accompagnent le graphique, ici chaque année avec sa couleur
$pie->SetLegends($tableauProjet);
 
// Position du graphique (0.5=centré)
$pie->SetCenter(0.4);
 
// Type de valeur (pourcentage ou valeurs)
$pie->SetValueType(PIE_VALUE_ABS);
 
// Personnalisation des étiquettes pour chaque partie
$pie->value->SetFormat('%d nom_projet');
 
// Personnaliser la police et couleur des étiquettes
$pie->value->SetFont(FF_ARIAL,FS_NORMAL, 9);
$pie->value->SetColor('blue');
 
// ajouter le graphique PIE3D au conteneur 
$graph->Add($pie);
 
// Provoquer l'affichage
$graph->Stroke();
 
?>
Voilà merci d'avance