Problème pour afficher plusieurs graphique avec Jpgraph

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème pour afficher plusieurs graphique avec Jpgraph

Re: Problème pour afficher plusieurs graphique avec Jpgraph

par Pierrot97 » 03 déc. 2012, 22:25

Bonjour,

Déjà fait, ça n'as pas résolu le problème.
Mais j'ai pu identifié que le problème venait de la fonction suivante:
$size_tableauresolu=count($tableauresolu);
function Callbacks($yval) {
 global $tableaucategorie, $total_val, $idx,$size_tableauresolu;
 $yval_pourcent=round(10000*$yval/$total_val)/100;
 $indice=$size_tableauresolu -1 - $idx++;
  return ''.$tableaucategorie[$indice]." ".$yval." -> ".$yval_pourcent." %";
 }
J'ai pas encore trouvé comment résoudre le problème mais je cherche là.
De l'aide ne serait pas de refus. ^^

Cordialement,

Re: Problème pour afficher plusieurs graphique avec Jpgraph

par moogli » 30 nov. 2012, 21:22

salut,


change le nom du second "camenbert".

Avec php les paramètres sont passés par référence, du coup au deuxième tu "écrase" le premier, et tu ne vois que celui la.



@+

Problème pour afficher plusieurs graphique avec Jpgraph

par Pierrot97 » 30 nov. 2012, 17:58

Bonjour à tous,

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(); ?>
J'utilise la fonction mgraph qui est dans jpgraph pour avoir plusieurs graphique.
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,