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
| <?php
//********************************************************************
// PARTIE 1 : Includes et initialisation des variables
// ********************************************************************
// Inclusion des librairies JpGraph
include ("../jpgraph/jpgraph.php");
include ("../jpgraph/jpgraph_pie.php");
// Tableaux de données destinées à JpGraph
$tableauGrade = array(12,23,9,58);
$tableauNbNom = array("bg","bch","mdl","mch");
// ********************************************************************
// PARTIE 2 : Production des données avec Postgres
// ********************************************************************
// Connexion à la base de donnée
$dbconnect = pg_connect("host=bpia-psql-1 port=5432 dbname=ListePersonnel user=moi password=mdp");
if (!$dbconnect) {
echo "Pas de connexion à la base de données.<br>";
exit;
}
// Construction de la requete personalisée
$query = "select grade, count(nom) as nbNom from personnel group by grade";
//Exécution de la requete
$result = pg_query($dbconnect, $query);
if (!$result)
{
echo "La requete ne fonctionne pas.<br>";
exit;
}
// Compte le nombre de lignes renvoyé par la requete
$nb=pg_num_rows($result);
//echo "Il y a $nb enregistrements dans la base.<br><br>"; //=> Ne pas activer cette ligne, le graphique ne s'afficherait plus.
// Au cas ou la requete est vide, on quitte
if ($nb==0)
{
echo "Il n'y a personne dans la base<br><br>";
exit;
}
/* ---------------------------------------SUPRESSION DE LA BOUCLE ------------------------
// Boucle de récuperation des données
while ($arr = pg_fetch_array($result))
{
$tableauGrade[] = $arr[0]; // Liste des grades
$tableauNbNom[] = $arr[1]; // Nombre de grade
}
-----------------------------------------------------------------------------------------*/
// Fermeture de la connection
pg_close($dbconnect);
// ********************************************************************
// PARTIE 3 : Création du graphique
// ********************************************************************
// On spécifie la largeur et la hauteur du graphique conteneur en pixels
$graph = new PieGraph(800,600);
// Titre du graphique
$graph->title->Set("Répartition des grades");
// Créer un graphique secteur (classe PiePlot)
$oPie = new PiePlot($tableauNbNom);
// Légendes qui accompagnent chaque secteur, ici chaque grade
$oPie->SetLegends($tableauGrade);
// 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();
?> |
Partager