Creation de graphe en php

Messages postés
11
Date d'inscription
lundi 24 août 2015
Dernière intervention
21 juin 2016
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
9 mars 2018
- 22 avril 2016 à 23:32
bonjour ,je suis actuellement en stage dans une entreprise et je travaille sur la gestion des KPI et de la maintenance des equipements du reseau LTdans l'application que je dois realiser,je dois generer des courbes montrant les valeurs des KPI dans une cellule du reseau precise;j'ai utilisé la librairie jpgraph et mon code ne marche pas depuis hier j'essaye de voir ce qui cloche mais en vain please need help voici le code que j'ai ecrit
<?php
include_once('mon_entete.php');
include_once('header.php');
include ("src/jpgraph.php");
include ("src/jpgraph_pie.php");
include ("src/jpgraph_pie3d.php");


?>
<?php

include_once('config.php');
//if(!empty($_POST['nom'])){
$idcom1=@mysql_connect(DSN,user,pass) or die('Pb de connxion mysql');
$idbase=mysql_select_db('projet');
if(!$idcom1|!$idbase)
{
echo"<script type=text/javascript>";
echo "alert('connexion impossible')</script>";
}
else{
$prise=mysql_escape_string($_POST['prise']);//date d'acquisition des valeurs

$cellule=mysql_escape_string($_POST['cellule']);//nom de la cellule
$rep='SELECT id_cell from cellule where name="'.$cellule.'"';
$rep1=mysql_query($rep,$idcom1);
$ll=@mysql_fetch_array($rep1);
$id=$ll[id_cell];//id de la cellule
$tableauAnnees = array();
$tableauNombreVentes = array();

// *****************************************************
// Extraction des données dans la base de données
// **************************************************
$req="SELECT kpi.rrc,kpi.erab,kpi.intra_frq,kpi.call_drop,kpi.dl_trafic,kpi.ul_trafic,
kpi.user_avg,kpi.user_max,kpi.dl_prb,kpi.ul_prb,kpi.qpsk,kpi.qam
FROM kpi WHERE kpi.prise=$prise and kpi.cellule_id_cell=$id";//je recupère les valeurs des kpi et ensuite je passe ces valeurs dans le tableau'tableau'
$mysqlQuery =mysql_query($req,$idcom1);
$nbcol=mysql_num_fields($mysqlQuery);
$nbform=mysql_num_rows($mysqlQuery);
echo $nbform;
if($nbform=='0'){echo"<font color='blue'><b>aucun resultat obtenu </b></font>";}
else{
$tableauAnnees[0]="rrc";
$tableauAnnees[1]="erab";
$tableauAnnees[2]="intra_frq";
$tableauAnnees[3]="call_drop";
$tableauAnnees[4]="dl_trafic";
$tableauAnnees[5]="ul_trafic";
$tableauAnnees[6]="user_avg";
$tableauAnnees[7]="user_max";
$tableauAnnees[8]="dl_prb";
$tableauAnnees[9]="ul_prb";
$tableauAnnees[10]="qpsk";
$tableauAnnees[11]="qam";

$malign= mysql_fetch_array($result);
$tableau[0]=$malign[rrc];
$tableau[1]=$malign[erab];
$tableau[2]=$malign[intra_frq];
$tableau[3]=$malign[call_drop];
$tableau[4]=$malign[dl_trafic];
$tableau[5]=$malign[ul_trafic];
$tableau[6]=$malign[user_avg];
$tableau[7]=$malign[user_max];
$tableau[0]=$malign[dl_prb];
$tableau[0]=$malign[ul_prb];
$tableau[0]=$malign[qpsk];
$tableau[0]=$malign[qam];
}
// **************************************
// Création du graphique
// *****************************************

// On spécifie la largeur et la hauteur du graph
$graph = new PieGraph(600,300);

// Ajouter une ombre au conteneur
$graph->SetShadow();

// Donner un titre
$graph->title->Set("Volume des ventes par années style PIE 3D");

// Quelle police et quel style pour le titre
// Prototype: function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10)
// 1. famille
// 2. style
// 3. taille
$graph->title->SetFont(FF_GEORGIA,FS_BOLD, 12);

// Créer un camembert
$pie = new PiePlot3D($tableau);

// Quelle partie se détache du reste
$pie->ExplodeSlice(2);

// Spécifier des couleurs personnalisées... #FF0000 ok
$pie->SetSliceColors(array('red', 'blue', 'green','white','black','pink','yellow','green','#33FF','#44FF','#66FFF','#77FFF'));

// Légendes qui accompagnent le graphique, ici chaque année avec sa couleur
$pie->SetLegends($tableauAnnees);

// Position du graphique (0.5=centré)
$pie->SetCenter(0.5);

// Type de valeur (pourcentage ou valeurs)
$pie->SetValueType(PIE_VALUE_ABS);

// Personnalisation des étiquettes pour chaque partie
$pie->value->SetFormat('%d');

// Personnaliser la police et couleur des étiquettes
$pie->value->SetFont(FF_ARIAL,FS_NORMAL, 9);
$pie->value->SetColor('blue');

// ajouter le graphique PIE3D au conteneur
$graph->Add($pie);

// Provoquer l'affichage
$graph->Stroke();
}
?>
<a href="affichage.php">
<div class="panel-footer">
<span class="pull-left"position='center'><b><h3>page precedente</h3></b></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</a>
<a href="KPI.php">
<div class="panel-footer">
<span class="pull-left"position='center'><b><h3>retour</h3></b></span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</a>
</body>
<?php
include_once('pied.php');
?>
</html>




Afficher la suite 

Votre réponse

1 réponse

Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
9 mars 2018
0
Merci
Sur ce que j'ai pu en déduire :

Utilisation obsolète de mysql -> mysqli
problème d'index dans $tableau
oublis des </div> dans l'html de fin (à l'intérieur des <a>)

<!DOCTYPE html>
<html>
<?php
/* HTML DOC ---- */
include_once('mon_entete.php');
include_once('header.php');

/* ---- */
require_once("src/jpgraph.php");
require_once("src/jpgraph_pie.php");
require_once("src/jpgraph_pie3d.php");

/* ---- */
require_once('config.php');

/* ---- HELPERS ---- */
define('GP_ALL', 0);
define('GP_POST', 1);
define('GP_GET', 2);

function getParam($param, $default, $range = GP_ALL){
  switch($range)
  {
    case GP_ALL :
      return isset($_GET[$param])?$_GET[$param]:(isset($_POST[$param])?$_POST[$param]:$default);
    break;
    case GP_GET :
      return isset($_GET[$param])?$_GET[$param]: $default;
    break;
    case GP_POST :
      return isset($_POST[$param])?$_POST[$param]:$default;
    break;
    default :
      return $default;
  }
}

class MySQLiExt extends mysqli 
{
  public function __construct()
  {
    parent::__construct(DB_SERVER, DB_USER, DB_PASSWORD, DB_BASENAME);
    $this->isConnected = $this->connect_errno == 0;
  } 

  public function escape($str)  
  {
    return $this->real_escape_string($str);
  }
}

/* ---- *** ---- */
$IDCom   = new MySQLiExt(DSN, user, pass, 'projet');

$prise   = $IDCom->escape(getParam('prise', NULL, GP_POST));
$cellule = $IDCom->escape(getParam('cellule'), NULL, GP_POST));

if(!$IDCom->isConnected)
{   
  echo '<script type="text/javascript">',
         "alert('connexion impossible');",
         "<!--/*\n",
         "Errno : ",$IDCom->connect_errno,"\n",
         "Error : ",$IDCom->connect_error,"\n",
         "*/-->\n",
       '</script>';
  exit;
}

$sql = sprintf("SELECT id_cell FROM cellule WHERE name='%s'", $cellule);
if(!$result = $IDCom->query($sql))
{
  echo '<script type="text/javascript">',
         "alert('SQL : Problème requète');",
         "<!--/*\n",
         "Errno : ",$IDCom->errno,"\n",
         "Error : ",$IDCom->error,"\n",
         "*/-->\n",
       '</script>';
  exit;
}

if($result->num_rows === 0)
{
  echo '<script type="text/javascript">',
         "alert('SQL : retour vide');",
       '</script>';
  exit;
}

$row = $result->fetch_assoc();
$id  = $row['id_cell'];

// *****************************************************
// Extraction des données dans la base de données 
// *****************************************************
$sql=sprintf("SELECT 
                kpi.rrc, 
                kpi.erab, 
                kpi.intra_frq, 
                kpi.call_drop, 
                kpi.dl_trafic, 
                kpi.ul_trafic, 
                kpi.user_avg, 
                kpi.user_max, 
                kpi.dl_prb, 
                kpi.ul_prb, 
                kpi.qpsk, 
                kpi.qam 
              FROM kpi 
              WHERE 
                kpi.prise='%s' AND kpi.cellule_id_cell='%s'";
             $prise,
             $id
            );
//je recupère les valeurs des kpi  et ensuite je passe ces valeurs dans le tableau'tableau' 

if(!$result = $IDCom->query($sql))
{
  echo '<script type="text/javascript">',
         "alert('SQL : Problème requète');",
         "<!--/*\n",
         "Errno : ",$IDCom->errno,"\n",
         "Error : ",$IDCom->error,"\n",
         "*/-->\n",
       '</script>';
  exit;
}

$nbcol  = $result->num_fields;
$nbform = $result->num_rows;

echo $nbform;
    
if($nbform == '0'){
  echo '<span style="font-weight:bold;color:blue">aucun resultat obtenu </span>';
}  
else
{
  $tableauAnnees = array(
    0  => "rrc",
    1  => "erab",
    2  => "intra_frq",
    3  => "call_drop",
    4  => "dl_trafic",
    5  => "ul_trafic",
    6  => "user_avg",
    7  => "user_max",
    8  => "dl_prb",
    9  => "ul_prb",
    10 => "qpsk",
    11 => "qam",
  );

  $malign= IDCom->fetch_array($result);
  
  $tableau = array(
    0  => $malign[rrc],
    1  => $malign[erab],
    2  => $malign[intra_frq],
    3  => $malign[call_drop],
    4  => $malign[dl_trafic],
    5  => $malign[ul_trafic],
    6  => $malign[user_avg],
    7  => $malign[user_max],
    8  => $malign[dl_prb],
    9  => $malign[ul_prb],
    10 => $malign[qpsk],
    11 => $malign[qam],
  );
}

// **************************************
// Création du graphique
// *****************************************

// On spécifie la largeur et la hauteur du graph
$graph = new PieGraph(600,300);

  // Ajouter une ombre au conteneur
  $graph->SetShadow();

  // Donner un titre
  $graph->title->Set("Volume des ventes par années style PIE 3D");

  // Quelle police et quel style pour le titre
  // Prototype: function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10)
  // 1. famille
  // 2. style
  // 3. taille
  $graph->title->SetFont(FF_GEORGIA,FS_BOLD, 12);

  // Créer un camembert 
  $pie = new PiePlot3D($tableau);

    // Quelle partie se détache du reste
    $pie->ExplodeSlice(2);

    // Spécifier des couleurs personnalisées... #FF0000 ok
    $pie->SetSliceColors(
      array(
        'red', 
        'blue', 
        'green',
        'white',
        'black',
        'pink',
        'yellow',
        'green',
        '#33FF',
        '#44FF',
        '#66FFF',
        '#77FFF',
      )
    );

    // Légendes qui accompagnent le graphique, ici chaque année avec sa couleur
    $pie->SetLegends($tableauAnnees);

    // Position du graphique (0.5=centré)
    $pie->SetCenter(0.5);

    // Type de valeur (pourcentage ou valeurs)
    $pie->SetValueType(PIE_VALUE_ABS);

    // Personnalisation des étiquettes pour chaque partie
    $pie->value->SetFormat('%d');

    // Personnaliser la police et couleur des étiquettes
    $pie->value->SetFont(FF_ARIAL,FS_NORMAL, 9);
    $pie->value->SetColor('blue');

// ajouter le graphique PIE3D au conteneur 
$graph->Add($pie);

// Provoquer l'affichage
$graph->Stroke();
  
?>

  <a href="affichage.php">
    <div class="panel-footer">
      <span class="pull-left"position='center'><b><h3>page precedente</h3></b></span>
      <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
    </div>
    <div class="clearfix"></div>
  </a>
  <a href="KPI.php">
    <div class="panel-footer">
      <span class="pull-left"position='center'><b><h3>retour</h3></b></span>
      <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
    </div>
    <div class="clearfix"></div>
  </a>
</body>
<?php
include_once('pied.php');
?>
</html>
Commenter la réponse de f0xi

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.