1 pièce(s) jointe(s)
Problème avec Jpgraph+PHP+Mysql
Bonjour à tous,
Alors voila, j'ai créer un formulaire qui récupère le mois et l'année dans ma base Mysql pour récupérer les données sélectionnées et faire apparaitre un camembert en conséquence.
Le soucis s'est que le camembert ne s'affiche pas :( alors que quand j'essaye mais sans le formulaire ça passe 8O.
Code:
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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| <?php
include ("../jpGraph/jpgraph.php");
include ("../jpGraph/jpgraph_pie.php");
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'glpi');
?>
<form method="post">
<select name="mois">
<?php
// Récupération des informations triées par ordre alphabétique
$sql = 'SELECT MONTH(date) as mois FROM glpi_excel GROUP BY MONTH(date)';
// 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');
while($data = mysql_fetch_array($mysqlQuery)){
// on affiche chaque champ
echo '<option name="'.$data['mois'].'">'.$data['mois'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req);
//On ferme le select
?>
</SELECT>
<select name="annee">
<?php
// Récupération des informations triées par ordre alphabétique
$sql = 'SELECT YEAR(date) as annee FROM glpi_excel GROUP BY YEAR(date)';
// 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');
while($data = mysql_fetch_array($mysqlQuery)){
// on affiche chaque champ
echo '<option name="'.$data['annee'].'">'.$data['annee'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req);
//On ferme le select
?>
<input type="submit" name="Valider" value="OK"/>
</SELECT>
</form>
<?php
// Tableaux de données destinées à JpGraph
$tableaucategorie = array();
$tableauouvert = array();
//On traite le formulaire
if(isset($_POST['Valider'])){
$mois=$_POST['mois'];
$annee=$_POST['annee'];
$sql =
'SELECT
name AS categorie,
COUNT(ID) AS ouvert
FROM glpi_excel
WHERE YEAR(date) = '.$annee.' AND MONTH(date) = '.$mois.'
GROUP BY name'
;
// 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
$tableaucategorie[] = $row['categorie'];
$tableauouvert[] = $row['ouvert'];
//print_r($tableaucategorie);
}
// ********************************************************************
// PARTIE : Création du graphique
// ********************************************************************
// On spécifie la largeur et la hauteur du graphique conteneur
$graph = new PieGraph(800,600);
// Titre du graphique
$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.3);
$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();
}
?> |
Merci à ceux qui pourront m'aider, je mets en PJ la BDD que j'utilise pour mes tests.