Mes données ne sont pas récupérées par mes tableaux

AlexMarie007 20 Messages postés vendredi 15 mai 2015Date d'inscription 22 décembre 2015 Dernière intervention - 14 déc. 2015 à 11:56 - Dernière réponse : jordane45 22901 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention
- 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 ";

$prepare = $bdd->query($echo);

// Requête
$recois = $prepare->setFetchMode(PDO::FETCH_ASSOC);
//setFetchMode(PDO::FETCH_ASSOC);

// 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
Afficher la suite 

Votre réponse

2 réponses

jordane45 22901 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention - Modifié par jordane45 le 3/03/2016 à 15:25
0
Merci
Bonjour,

Essayes ça :



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();
 



Cordialement, 
Jordane                                                                 
Commenter la réponse de jordane45
arguiot 29 Messages postés jeudi 3 mars 2016Date d'inscription 21 juin 2016 Dernière intervention - 3 mars 2016 à 13:43
-1
Merci
essai d'enlever l'espace a la fin de ta requête
$echo = "SELECT nbaffaire_realisee,année FROM statistique ";
Commenter la réponse de arguiot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.