Mes données ne sont pas récupérées par mes tableaux
AlexMarie007
Messages postés20Date d'inscriptionvendredi 15 mai 2015StatutMembreDernière intervention22 décembre 2015
-
Modifié par AlexMarie007 le 14/12/2015 à 11:57
jordane45
Messages postés38112Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 mars 2024
-
3 mars 2016 à 15:25
Bonjour, l'utilisation des librairies est importante mais savoir les utiliser est encore meilleure. j'apprends la programmation orientée objet php et je souhaite réaliser des statistiques par le biais de jpgraph php. J'ai créé le code pouvant m'afficher mes données en secteur; j'ai défini $tabloannee[] =array() et $tablonbaffaire[]=array() pour recevoir en fonction de la requète les données de ma table statistique, les passer en tableau mais il ne retourne rien, je ne comprends pas la raison alors je vous poste mon code source pour observation.
Car le message d'erreur:
JpGraph Error: 15009 Illegal pie plot. Sum of all data is zero for Pie Plot
<?php // ************************************************* // Includes et initialisation des variables // *************************************************
// Inclusion de la librairie JpGraph include ("../lib/jpgraph/src/jpgraph.php"); include ("..//lib/jpgraph/src/jpgraph_pie.php");
// Tableaux de données destinées à JpGraph $tabloannees = array(); $tabloaffaire = array();
// ************************************************ // Production des données avec Mysql \\ // ************************************************
// Connexion à la BDD $bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','*****');
// Sélection de la base de données $echo = "SELECT nbaffaire_realisee,annee FROM statistique ";
// Fetch sur chaque enregistrement while ($recois = $prepare->fetch() >0) { // Alimentation des tableaux de données $tabloannees[] = $recois['annee']; $tabloaffaire[] = $recois['nbaffaire_realisee']; }
//echo $tabloannees."".$tabloaffaire[];
// ************************************************ // Création du graphique // ************************************************
// On spécifie la largeur et la hauteur du graphique conteneur $graph = new PieGraph(400,300);
// Titre du graphique $graph->title->Set("Volume des affaires par années");
// Créer un graphique secteur (classe PiePlot) $oPie = new PiePlot($tabloaffaire);
// Légendes qui accompagnent chaque secteur, ici chaque année $oPie->SetLegends($tabloannees);
// 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();
J'ai impunément besoin de votre aide
A voir également:
Mes données ne sont pas récupérées par mes tableaux
Déjà.. place la connexion de ta BDD dans un fichier à part
que tu n'auras qu'à inclure dans les pages où tu en auras besoin.
<?php
// Fichier cnxBDD.php
//-------------------------------//
//pour afficher les erreurs php:
error_reporting(E_ALL);
try {
$bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','*****');
// set the PDO error mode to exception
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo $sql . "<br>" . $e->getMessage();
}
Puis dans ta page
<?php
//----------------------------------------------//
//Au début de ta page php
//----------------------------------------------//
//Affichage des erreurs php
error_reporting(E_ALL);
//connexion à la BDD
require_once "cnxBDD.php";
// Inclusion de la librairie JpGraph
include ("../lib/jpgraph/src/jpgraph.php");
include ("..//lib/jpgraph/src/jpgraph_pie.php");
// Tableaux de données destinées à JpGraph
$tabloannees = array();
$tabloaffaire = array();
try{
$sql = "SELECT nbaffaire_realisee,annee FROM statistique ";
$prepare = $bdd->prepare($sql);
$prepare->execute();
//on stocke le résultat dans un array
$recois = $prepare->fetchAll();
}catch (PDOException $e) {
// en cas d'erreur dans la requete
echo "<br>Erreur : ".$e->getMessage();
}
foreach($recois as $R ){
// Alimentation des tableaux de données
$tabloannees[] = $R['annee'];
$tabloaffaire[] = (float)$R['nbaffaire_realisee'];
}
// ************************************************
// Création du graphique
// ************************************************
// On spécifie la largeur et la hauteur du graphique conteneur
$graph = new PieGraph(400,300);
// Titre du graphique
$graph->title->Set("Volume des affaires par années");
// Créer un graphique secteur (classe PiePlot)
$oPie = new PiePlot($tabloaffaire);
// Légendes qui accompagnent chaque secteur, ici chaque année
$oPie->SetLegends($tabloannees);
// 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();