IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[JpGraph] JPGRAPH et Copy to the clipboard


Sujet :

Bibliothèques et frameworks PHP

  1. #21
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    Comment intègres-tu ?
    Le mode nominal consiste à avoir un fichier php spécifique pour la creation du graphique, fichier que l'on appelle ensuite dans le programme principal avec une balise img, source=le nom du fichier, et les valeurs dont tu as besoin en paramètres
    explications détaillées dans l'excellent tuto d'Eric Pommereau : http://eric-pommereau.developpez.com...stuces#LIV-A-3
    Participez vous aussi !
    Message utile
    Discussion résolue

  2. #22
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    erf je viens de voir ton message... ça fait déjà plus d'une heure que je me bas avec !!!

    c'est a dire que quand je sélectionne dans la liste déroulante, ça renvoi les valeurs dans le sript php...

    donc que dois-je faire ?
    je renvoi la valeur sur ma page et j'appelle mon script après ?

  3. #23
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    pour mon tableau ça fonctionne, mais pour l'image, j'ai fait comme tu as dis...
    toujours pas , mais ça avance.
    aperçu:
    Nom : three.JPG
Affichages : 52
Taille : 68,6 Ko

    j'ai un petit beug au niveau de mon camembert...
    je dois faire la faute quand j'appel mon fichier peut etre...
    programme ou j'appel mon camembert: (Ligne 73)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     
    <?php 
    //$ns= NULL;
    if(isset($_GET['nom'])){
    $ns =$_GET['nom'];
    //echo $ns;
    $sql_camembert =
    'SELECT
           Release_gsm 												AS "Release"
    	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS "Qty"
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
      GROUP BY
      	Release_gsm
     	, Sub_release_gsm
    --   WITH ROLLUP'
    ;
    $sql_tableau = 
    'SELECT
           Release_gsm 												AS "Release"
     	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS Total
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
    GROUP BY
    	Release_gsm
     	, Sub_Release_gsm
    --  WITH ROLLUP'
    ;
    unset($ns);
    }
    // Connexion au serveur de base de données
      $link = mysql_connect("127.0.0.1","root","");
      if (!$link) 
      {
        die('Connexion impossible : ' . mysql_error());
     
      }
      //echo 'Connecté correctement';
     
      // Sélection de la base de données
      $db_selected = mysql_select_db('npidb',$link);
      if (!$db_selected) 
      {
         die ('Impossible de sélectionner la base de données : ' . mysql_error());
      }
      // On va chercher les enregistrements disponibles   
     
      $result = mysql_query($sql_camembert) or die('Erreur SQL : <br />'.$sql_camembert);
      // On affiche le contenu si la table n'est pas vide
      if (mysql_num_rows($result) > 0) 
      {
         //echo '<br />';
    	 while ($donnees = mysql_fetch_assoc($result))
    	 {
         	//echo $donnees['datation'].' '.$donnees['type'].' '.$donnees['valeur'].'<br />';
    		$data1y[] = $donnees['Pourcentage'];
     
    		//echo $data1y.'<br />';
    	 }
      } 
     
    ?>
    <img src="graph1.php?nom="+$nom width="240" height="240" />
    <?php
    // on se connecte à notre base
     
    	//echo "Demande  de connexion au NAS<br>";
     
    	$link = mysql_connect("127.0.0.1","root","") or die ("Impossible de se connecter : " . mysql_error());	
    	//echo "Connexion au NAS reussie<br>Demande de selection de la base<br>";
     
    	$reponse=mysql_select_db("npidb",$link) or die("Impossible de selectionner la base de donnee ");	
    		//echo "Selection reussie<br>";
    		$date = date("d-m-Y");
    $heure = date("H:i");
    // echo 
    //	"Bonjour et bienvenue, nous sommes le $date , il est $heure ";
    ?>
    <html>
    <head>
    <title>latest TPM updates</title>
    </head>
    <body>
    <?php
    $req = mysql_query($sql_tableau) or die('Erreur SQL !<br />'.$sql_tableau.'<br />'.mysql_error());  
     
    ?> 
    <div style="float:left; top; width:550px;">
    <table  width = "100%" border="1" cellspacing="1" cellspacing="1" >
    <tr>
    <th> Release </th>
      <th> Sub Releases </th>
      <th> Total </th>
      <th> Pourcentage </th>
    </tr>
     
    <?php
    while ($data1y = mysql_fetch_array($req)) {
    	?>
        <tr><td>
    		<?php echo $data1y['Release']; ?>
    	</td><td>
    		<?php echo $data1y['Sub Release'];?>
    	</td><td>
    		<?php echo $data1y['Total']; ?>
    	</td><td>
    		<?php echo $data1y['Pourcentage']; ?>
    	</td>
     
    <?php
    }
    //echo $ns;
    mysql_free_result ($req);  
    mysql_close (); 
    ?>
    script JPGRAPH:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    require_once ('jpgraph.php');
    require_once ('jpgraph_pie.php');
    //require_once ('jpgraph_pie3d.php');
     
     
    //$gJpgBrandTiming=true;
     
     
     
    // Create the Pie Graph. 
    $graph = new PieGraph(500,350);
    $graph->SetShadow();
     
    // Set A title for the plot
    $graph->title->Set("3D Pie Client side image map");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
     
    // Create
    $p1 = new PiePlot($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
    $targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
    			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
    $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
    $p1->SetCSIMTargets($targ,$alts);
     
    // Use absolute labels
    $p1->SetLabelType(PIE_VALUE_PER);
    //$p1->value->Show();
    $p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    $p1->value->SetFormat('%2.1f%%');
     
    // Enable and set policy for guide-lines. Make labels line up vertically
    //$p1->SetGuideLines(true,false);
    //$p1->SetGuideLinesAdjust(1.5);
     
    // Move the pie slightly to the left
    $p1->SetCenter(0.4,0.5);
     
    $graph->Add($p1);
     
     
    // Send back the HTML page which will call this script again
    // to retrieve the image.
    $graph->StrokeCSIM();
    ?>

  4. #24
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    C'est normal que ça n'affiche rien car tu n’envoies pas de données au script JpGraph.
    ligne 20 du script JpGraph, tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $p1 = new PiePlot($data1y);
    mais le script Jpgraph ne connait pas ce $data1y
    Tu as créé $data1y dans le programme principal et tu dois donc le passer en paramètre lors de ton appel avec la balise image. Mais les tableaux ne passent pad directement en parametre ... pas de panique, tu utilises serialize, puis unserialize dans le script jPGraph.

    Ca donne ex lignes 70 à 75 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      }
    $data1y_serialised=serialise($data1y);
    echo "<img src='graph1?data_serialised=$data1y_serialised' width='240' height='240'>";
    // on se connecte à notre base
    Tu remarqueras que je laisse l'ensemble en php.

    Par ailleurs, ligne 41, tu devrais initialiser $data1y par
    Lignes 5-6 du script JpGraph :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $data_serialised=$_REQUEST['data_serialised'];
    $data1y=unserialize($data_serialised);
    Ces lignes de code ont peut-être des petites erreurs de syntaxe car non testées ...
    Participez vous aussi !
    Message utile
    Discussion résolue

  5. #25
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    en effet... j'essaie tout de suite !

  6. #26
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    Eh, non j'y arrive pas... ou j'ai fais une faute de syntaxe.
    j'ai pris en compte ce que tu m'a dis j'en suis toujours au même point.
    j'ai lu un peu de doc la dessus... je pense que j'y suis presque mais bon c'est pas encore ça

    programme ou j'appel le camembert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php 
    //$ns= NULL;
    if(isset($_GET['nom'])){
    $ns =$_GET['nom'];
    //echo $ns;
    $sql_camembert =
    'SELECT
           Release_gsm 												AS "Release"
    	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS "Qty"
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
      GROUP BY
      	Release_gsm
     	, Sub_release_gsm
    --   WITH ROLLUP'
    ;
    $sql_tableau = 
    'SELECT
           Release_gsm 												AS "Release"
     	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS Total
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
    GROUP BY
    	Release_gsm
     	, Sub_Release_gsm
    --  WITH ROLLUP'
    ;
    unset($ns);
    }
    // Connexion au serveur de base de données
      $link = mysql_connect("127.0.0.1","root","");
      if (!$link) 
      {
        die('Connexion impossible : ' . mysql_error());
     
      }
      //echo 'Connecté correctement';
     
      // Sélection de la base de données
      $db_selected = mysql_select_db('npidb',$link);
      if (!$db_selected) 
      {
         die ('Impossible de sélectionner la base de données : ' . mysql_error());
      }
      // On va chercher les enregistrements disponibles   
     
      $result = mysql_query($sql_camembert) or die('Erreur SQL : <br />'.$sql_camembert);
      // On affiche le contenu si la table n'est pas vide
      if (mysql_num_rows($result) > 0) 
      {
         //echo '<br />';
    	 while ($donnees = mysql_fetch_assoc($result))
    	 {
         	//echo $donnees['datation'].' '.$donnees['type'].' '.$donnees['valeur'].'<br />';
    		$data1y[] = $donnees['Pourcentage'];
     
    		//echo $data1y.'<br />';
     
    	 }
    	 $data1y_serialize=array(serialize($data1y));
    echo "<img src='graph1?data_serialize=$data1y_serialize' width='240' height='240'>";
      } 
     
    ?>
    sript JPGRAPH:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php 
    require_once ('jpgraph.php');
    require_once ('jpgraph_pie.php');
    //require_once ('jpgraph_pie3d.php');
    $data1y_serialize=$_REQUEST["data1y_serialize"];
    $data1y=unserialize($data1y_serialize);
    //$gJpgBrandTiming=true;
     
    // Create the Pie Graph. 
    $graph = new PieGraph(500,350);
    $graph->SetShadow();
     
    // Set A title for the plot
    $graph->title->Set("3D Pie Client side image map");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
     
     
    // Create
    $p1 = new PiePlot($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
    $targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
    			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
    $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
    $p1->SetCSIMTargets($targ,$alts);
     
    // Use absolute labels
    $p1->SetLabelType(PIE_VALUE_PER);
    //$p1->value->Show();
    $p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    $p1->value->SetFormat('%2.1f%%');
     
    // Enable and set policy for guide-lines. Make labels line up vertically
    //$p1->SetGuideLines(true,false);
    //$p1->SetGuideLinesAdjust(1.5);
     
    // Move the pie slightly to the left
    $p1->SetCenter(0.4,0.5);
    $data1y=array();
    $graph->Add($p1);
     
     
    // Send back the HTML page which will call this script again
    // to retrieve the image.
    $graph->StrokeCSIM();
    ?>

  7. #27
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    ligne 71, $data1y_serialize est un string, tu n'as pas à le déclarer. Donc écris plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data1y_serialize=serialize($data1y);
    En revanche, ligne 60, ajoute :
    Participez vous aussi !
    Message utile
    Discussion résolue

  8. #28
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    a la ligne 60?
    donc ça fera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (mysql_num_rows($result) > 0) 
      {
           $data1y=array();
           //echo '<br />';
    	while ($donnees = mysql_fetch_assoc($result))
    ainsi ?

  9. #29
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    Yes
    Participez vous aussi !
    Message utile
    Discussion résolue

  10. #30
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    toujours pas !!! :/

  11. #31
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    vois tu une icône d'image en lieu et place du graphique attendu ?
    Participez vous aussi !
    Message utile
    Discussion résolue

  12. #32
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    oui, voila( je m'excuse de ne répondre que maintenant... j'étais en réunion)
    c'est du a quoi ?
    j'obtiens ça:
    Nom : aze.JPG
Affichages : 48
Taille : 10,9 Ko

  13. #33
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    Sous Firefox, cliques droit sur l'icône de l'image, puis cliques sur 'affichez l'image'. tu devrais voir s' afficher un message d'erreur explicite sur le problème
    Participez vous aussi !
    Message utile
    Discussion résolue

  14. #34
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    le site est compatible que Internet Explorer
    j'ai rajouter le $data1y = array() dans le script JPGRAPH:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Create
    $data1y=array();
    $p1 = new PiePlot($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
    $targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
    			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
    $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
    $p1->SetCSIMTargets($targ,$alts);
    ça me dit que la valeur est nulle, regarde:
    Nom : null.JPG
Affichages : 56
Taille : 41,6 Ko

    je pense que ça vient du "serialize & unserialize", je n'ai peut etre pas bien placer les paramètres, ou ma syntaxe n'est pas bonne...
    Sript PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php 
    require_once ('jpgraph.php');
    require_once ('jpgraph_pie.php');
    //require_once ('jpgraph_pie3d.php');
    $data1y_serialize=$_REQUEST["data1y_serialize"];
    $data1y = serialize($data1y_serialize);
    //$gJpgBrandTiming=true;
     
     
    // Create
    $data1y=array();
    $p1 = new PiePlot($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
    $targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
    			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
    $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
    $p1->SetCSIMTargets($targ,$alts);
    ou dans le prog principal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     if (mysql_num_rows($result) > 0) 
    	  {
    		 //$data1y=array();
    		 while ($donnees = mysql_fetch_assoc($result))
    		 {
    			$data1y[] = $donnees['Pourcentage'];
    		 }
    		 $data1y_serialize=serialize($data1y);
    		 echo "<img src='graph1.php?data_serialize=$data1y_serialize' width='500' height='350'>";
    	  }

  15. #35
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    Dans le script Jpgraph, tu peux déclarer un &data1y, mais alors il faut le faire avant les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data_serialised=$_REQUEST['data_serialised']; $data1y=unserialize($data_serialised);
    par ailleurs, tu as des noms de variables passés en argument dans la balise image et reçues avec $_REQUEST qui ne sont pas identiques
    dans prog principal : data_serialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<img src='graph1?data_serialize=$data1y_serialize' width='240' height='240'>"; }
    dans prog jpgraph : data1y_serialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data1y_serialize=$_REQUEST["data1y_serialize"];
    Actuellement, $_REQUEST ne peut rien trouver dans data1y_serialize, puusque cette valeurn'a pas été envoyée dans la balise image.
    Prend celle que tu veux mais prend la même !
    enfin, à l'intérieur du &_REQUEST, c'est ' et pas ".

    encore un petit bug dans la balise img : tu as oublié .php à la fin du nom du fichier.
    tu devrais avoir :img src='graph1.php?.....

    Bon courage
    Participez vous aussi !
    Message utile
    Discussion résolue

  16. #36
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    j'ai effectué toutes les modifications que tu m'a di..
    ça me di que: "somme de toutes les données est nulle pour le camembert"
    et pourtant j'ai tout fait!

    regarde mon commentaire précédent !

  17. #37
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    peux-tu reposter les 2 codes sources mis à jour ?
    Participez vous aussi !
    Message utile
    Discussion résolue

  18. #38
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    prog principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    //$ns= NULL;
    if(isset($_GET['nom'])){
    $ns =$_GET['nom'];
    //echo $ns;
    $sql_camembert =
    'SELECT
           Release_gsm 												AS "Release"
    	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS "Qty"
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
      GROUP BY
      	Release_gsm
     	, Sub_release_gsm
    --   WITH ROLLUP'
    ;
    $sql_tableau = 
    'SELECT
           Release_gsm 												AS "Release"
     	  , Sub_release_gsm											AS "Sub Release"
    	  , SUM(' . $ns . ') 										AS Total
    	  , FORMAT(100*SUM(' . $ns . ')/(SELECT SUM(' . $ns . ') FROM customer), 1) AS Pourcentage
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
    GROUP BY
    	Release_gsm
     	, Sub_Release_gsm
    --  WITH ROLLUP'
    ;
    //unset($ns);
    }
    // Connexion au serveur de base de données
      $link = mysql_connect("127.0.0.1","root","");
      if (!$link) 
      {
        die('Connexion impossible : ' . mysql_error());
     
      }
      //echo 'Connecté correctement';
     
      // Sélection de la base de données
      $db_selected = mysql_select_db('npidb',$link);
      if (!$db_selected) 
    	  {
    		 die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	  }
      // On va chercher les enregistrements disponibles   
     
      $result = mysql_query($sql_camembert) or die('Erreur SQL : <br />'.$sql_camembert);
      // On affiche le contenu si la table n'est pas vide
     
      if (mysql_num_rows($result) > 0) 
    	  {
     
    		 while ($donnees = mysql_fetch_assoc($result))
    		 {
    			//$data1y=array();
    			$data1y[] = $donnees['Pourcentage'];
    		 }
    		 $data1y_serialised=serialize($data1y);
    		 echo "<img src='graph1.php?data1y_serialised=$data1y_serialised' width='500' height='350'>";
    	  } 
     
    ?>
    scrip JPGRAPH:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    require_once ('jpgraph.php');
    require_once ('jpgraph_pie.php');
    //require_once ('jpgraph_pie3d.php');
    $data1y_serialised = $_REQUEST['data1y_serialised']; 
    $data1y = unserialize($data1y_serialised);
     
    $data1y=array();
     
    //$gJpgBrandTiming=true;
     
    // Create the Pie Graph. 
    $graph = new PieGraph(500,350);
    $graph->SetShadow();
     
    // Set A title for the plot
    $graph->title->Set("3D Pie Client side image map");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
     
     
    // Create
    $p1 = new PiePlot($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
    $targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
    			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
    $alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
    $p1->SetCSIMTargets($targ,$alts);
     
    // Use absolute labels
    $p1->SetLabelType(PIE_VALUE_PER);
    //$p1->value->Show();
    $p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    $p1->value->SetFormat('%2.1f%%');
     
    // Enable and set policy for guide-lines. Make labels line up vertically
    //$p1->SetGuideLines(true,false);
    //$p1->SetGuideLinesAdjust(1.5);
     
    // Move the pie slightly to the left
    $p1->SetCenter(0.4,0.5);
     
    $graph->Add($p1);
     
     
    // Send back the HTML page which will call this script again
    // to retrieve the image.
    $graph->StrokeCSIM();
    ?>

  19. #39
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 595
    Points : 879
    Points
    879
    Par défaut
    Salut.
    j'ai simplifié ton script jpGraph :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    require_once ("jpgraph.php");
    require_once ("jpgraph_pie.php");
    require_once ('jpgraph_pie3d.php');
     
    $data1y_serialised = $_REQUEST['data1y_serialised']; 
    $data1y = unserialize($data1y_serialised);
     
    $data_legend_serialised = $_REQUEST['data_legend_serialised']; 
    $data_legend = unserialize($data_legend_serialised); 
     
    // Create the Pie Graph. 
    $graph = new PieGraph(400,400);
    $graph->SetShadow();
     
    // Set A title for the plot
    $graph->title->Set("3D Pie Client side image map");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
     
    // Create
    $p1 = new PiePlot3D($data1y);
    $p1->SetCenter(0.5,0.55);
    $p1->SetSize(0.3);
    $p1->SetLegends($data_legend);
     
    // Use absolute labels
    $p1->SetLabelType(PIE_VALUE_PER);
    //$p1->value->Show();
    $p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    $p1->value->SetFormat('%2.1f%%');
     
    // Enable and set policy for guide-lines. Make labels line up vertically
    //$p1->SetGuideLines(true,false);
    //$p1->SetGuideLinesAdjust(1.5);
     
    // Move the pie slightly to the left
    $p1->SetCenter(0.4,0.5);
     
    $graph->Add($p1);
    $graph->Stroke();
    ?>
    et imposé un tableau de valeur dans le programme principal puisque je ne peux pas creer $data1y sans la base de données puis ajouté de la même façpn une légende. les 2 sont passés en argument dans la balise img :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $data1y = array(40,60,21,33,55,25,61);
    	$data1y_serialised=serialize($data1y);
     
    	$data_legend=array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul");
    	$data_legend_serialised=serialize($data_legend);
    	echo "<img src='./include/test_jpgraph_25_.php?data1y_serialised=$data1y_serialised&data_legend_serialised=$data_legend_serialised'>";
    Et ça donne :


    Donc je te conseille de remplacer ton fichier jpgraph par le mien, et ensuite de vérifier que le graphique s'affiche bien en remplaçant , dans le prog principale les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      if (mysql_num_rows($result) > 0) 
    	  {
     
    		 while ($donnees = mysql_fetch_assoc($result))
    		 {
    			//$data1y=array();
    			$data1y[] = $donnees['Pourcentage'];
    		 }
    		 $data1y_serialised=serialize($data1y);
    		 echo "<img src='graph1.php?data1y_serialised=$data1y_serialised' width='500' height='350'>";
    	  }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      if (mysql_num_rows($result) > 0) 
    	  {
     
    		 while ($donnees = mysql_fetch_assoc($result))
    		 {
    			// $data1y=array();
    			// $data1y[] = $donnees['Pourcentage'];
    		 }
    	$data1y = array(40,60,21,33,55,25,61);
    	$data1y_serialised=serialize($data1y);
    	$data_legend=array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul");
    	$data_legend_serialised=serialize($data_legend);
    	echo "<img src='./include/test_jpgraph_25_.php?data1y_serialised=$data1y_serialised&data_legend_serialised=$data_legend_serialised'>";
    	  }
    Il te restera ensuite à modifier l'intérieur de la boucle while pour remplir dynamiquement les 2 tableaux $data1y et $data_legend.
    Images attachées Images attachées  
    Participez vous aussi !
    Message utile
    Discussion résolue

  20. #40
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    ok, je passe a la rectification...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Bouton Copy Table To Clipboard [Chrome Extension]
    Par rlelamer dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/10/2019, 02h00
  2. [LibreOffice][Tableur] [Macro Basic] Limite max d'une MsgBox et TextBox ? Et copie dans le clipboard ?
    Par GolgothBe dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 06/05/2014, 13h18
  3. Applet signé et copie depuis le clipBoard
    Par TorTukiTu dans le forum Applets
    Réponses: 3
    Dernier message: 27/04/2010, 14h55
  4. Réponses: 3
    Dernier message: 19/04/2007, 11h34
  5. [JpGraph] code barre à la volée?
    Par toan dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 11/10/2004, 09h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo