Creation de graphe en php

lalae Messages postés 11 Date d'inscription lundi 24 août 2015 Statut Membre Dernière intervention 21 juin 2016 - 15 avril 2016 à 11:12
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 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>




1 réponse

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
Modifié par f0xi le 22/04/2016 à 23:34
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>
0
Rejoignez-nous