J'essaye de faire apparaitre plusieurs camembert sur la même page.
Pour les autre graphiques ça passe mais pour les 2 camembert en question ça pose problème et je ne trouve pas pourquoi.
Code : Tout sélectionner
<?php
include ("../jpGraph/jpgraph.php");
include ("../jpGraph/jpgraph_pie.php");
include ("../jpGraph/jpgraph_mgraph.php");
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'glpi');
// Tableaux de données destinées à JpGraph
$tableaucategorie = array();
$tableauouvert = array();
$tableauouverttotal = "";
$tableaumois = "";
$moislettre = array("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre");
$tableauannee = "";
$sql ='SELECT
name AS categorie,
COUNT(ID) AS ouvert
FROM `glpi_excel`
WHERE YEAR(date) = 2012 AND MONTH(date) = 6
GROUP BY name';
$sql2 = 'SELECT COUNT(ID) AS total_ouvert
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
$sql3='SELECT MONTH(date) as MOIS
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
$sql4='SELECT YEAR(date) as ANNEE
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
// 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ête1');
$mysqlQuery2 = @mysql_query($sql2, $mysqlCnx) or die('Pb de requête2');
$mysqlQuery3 = @mysql_query($sql3, $mysqlCnx) or die('Pb de requête3');
$mysqlQuery4 = @mysql_query($sql4, $mysqlCnx) or die('Pb de requête4');
// Fetch sur chaque enregistrement
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
// Alimentation des tableaux de données
$tableaucategorie[] = $row['categorie'];
$tableauouvert[] = $row['ouvert'];
$total_val=array_sum($tableauouvert);
$idx=0;
}
while ($row = mysql_fetch_array($mysqlQuery2, MYSQL_ASSOC)) {
$tableauouverttotal = $row['total_ouvert'];
}
while ($row = mysql_fetch_array($mysqlQuery3, MYSQL_ASSOC)) {
$tableaumois = $moislettre[$row['MOIS']];
}
while ($row = mysql_fetch_array($mysqlQuery4, MYSQL_ASSOC)) {
$tableauannee = $row['ANNEE'];
}
//var_dump($tableaucategorie);
//var_dump($tableauouvert);
// ********************************************************************
// PARTIE : Création du graphique
// ********************************************************************
$size_tableauouvert=count($tableauouvert);
function xyCallback($yval) {
global $tableaucategorie, $total_val, $idx,$size_tableauouvert;
$yval_pourcent=round(10000*$yval/$total_val)/100;
$indice=$size_tableauouvert -1 - $idx++;
return ''.$tableaucategorie[$indice]." ".$yval." -> ".$yval_pourcent." %";
}
// On spécifie la largeur et la hauteur du graphique conteneur
$graph = new PieGraph(1200,700);
$graph->SetScale("intlin");
// Titre du graphique
$titre_mois="Nombre de tickets ouverts(".$tableauouverttotal.") pour ".$tableaumois." ".$tableauannee." ";
$graph->title->Set($titre_mois);
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->legend->SetPos(0.50,0.9,'center');
//$graph->title->Set("Nombre de tickets ouverts");
// Créer un graphique secteur (classe PiePlot)
$oPie = new PiePlot($tableauouvert);
// Légendes qui accompagnent chaque secteur, ici chaque année
//$oPie->SetLegends($tableaucategorie);
// position du graphique (légèrement à droite)
$oPie->SetCenter(0.4);
$oPie->value->SetFormatCallback('xyCallback');
$oPie->SetLabelType(PIE_VALUE_ABS);
// Format des valeurs de type entier
$oPie->value->Show();
$oPie->SetGuideLinesAdjust(1);
// Ajouter au graphique le graphique secteur
$graph->Add($oPie);
// Provoquer l'affichage (renvoie directement l'image au navigateur)
//$graph->Stroke();
// Tableaux de données destinées à JpGraph
$tableaucategorie = array();
$tableauouvert = array();
$tableauouverttotal = "";
$tableaumois = "";
$moislettre = array("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre");
$tableauannee = "";
$sql ='SELECT
name AS categorie,
COUNT(solvedate) AS ouvert
FROM `glpi_excel`
WHERE YEAR(date) = 2012 AND MONTH(date) = 6
GROUP BY name';
$sql2 = 'SELECT COUNT(solvedate) AS total_ouvert
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
$sql3='SELECT MONTH(date) as MOIS
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
$sql4='SELECT YEAR(date) as ANNEE
FROM glpi_excel
WHERE YEAR(date) = 2012 AND MONTH(date) = 6';
// 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ête1');
$mysqlQuery2 = @mysql_query($sql2, $mysqlCnx) or die('Pb de requête2');
$mysqlQuery3 = @mysql_query($sql3, $mysqlCnx) or die('Pb de requête3');
$mysqlQuery4 = @mysql_query($sql4, $mysqlCnx) or die('Pb de requête4');
// Fetch sur chaque enregistrement
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
// Alimentation des tableaux de données
$tableaucategorie[] = $row['categorie'];
$tableauouvert[] = $row['ouvert'];
$total_val=array_sum($tableauouvert);
$idx=0;
}
while ($row = mysql_fetch_array($mysqlQuery2, MYSQL_ASSOC)) {
$tableauouverttotal = $row['total_ouvert'];
}
while ($row = mysql_fetch_array($mysqlQuery3, MYSQL_ASSOC)) {
$tableaumois = $moislettre[$row['MOIS']];
}
while ($row = mysql_fetch_array($mysqlQuery4, MYSQL_ASSOC)) {
$tableauannee = $row['ANNEE'];
}
//var_dump($tableaucategorie);
//var_dump($tableauouvert);
// ********************************************************************
// PARTIE : Création du graphique
// ********************************************************************
$size_tableauouvert=count($tableauouvert);
function xyCallbacks($yval) {
global $tableaucategorie, $total_val, $idx,$size_tableauouvert;
$yval_pourcent=round(10000*$yval/$total_val)/100;
$indice=$size_tableauouvert -1 - $idx++;
return ''.$tableaucategorie[$indice]." ".$yval." -> ".$yval_pourcent." %";
}
// On spécifie la largeur et la hauteur du graphique conteneur
$graph1 = new PieGraph(1200,700);
$graph1->SetScale("intlin");
// Titre du graphique
$titre_mois="Nombre de tickets résolus(".$tableauouverttotal.") pour ".$tableaumois." ".$tableauannee." ";
$graph1->title->Set($titre_mois);
$graph1->title->SetFont(FF_FONT1,FS_BOLD);
$graph1->legend->SetPos(0.50,0.9,'center');
//$graph->title->Set("Nombre de tickets ouverts");
// Créer un graphique secteur (classe PiePlot)
$oPie = new PiePlot($tableauouvert);
// Légendes qui accompagnent chaque secteur, ici chaque année
//$oPie->SetLegends($tableaucategorie);
// position du graphique (légèrement à droite)
$oPie->SetCenter(0.4);
$oPie->value->SetFormatCallback('xyCallbacks');
$oPie->SetLabelType(PIE_VALUE_ABS);
// Format des valeurs de type entier
$oPie->value->Show();
$oPie->SetGuideLinesAdjust(1);
// Ajouter au graphique le graphique secteur
$graph1->Add($oPie);
// Provoquer l'affichage (renvoie directement l'image au navigateur)
//$graph1->Stroke();
$mgraph = new MGraph();
$xpos1=3;$ypos1=3;
$xpos2=3;$ypos2=700;
$mgraph->Add($graph,$xpos1,$ypos1);
$mgraph->Add($graph1,$xpos2,$ypos2);
$mgraph->Stroke();
?>Les 2 graphiques sont fonctionnels, quand je vais apparaitre un seul ça passe mais les 2 en même temps non.
Merci à ceux qui pourront m'aider.
Cordialement,