pharelka
Messages postés6Date d'inscriptionmardi 29 juillet 2014StatutMembreDernière intervention29 août 2014
-
Modifié par pharelka le 29/07/2014 à 18:09
virtualfrance -
27 sept. 2018 à 09:33
Bonjour à tous,
Je dois faire des graphiques que je mettrais à mon site, mais lorsque j'exécute mon code rien ne s'affiche et j'ai cette erreur(ci-dessous), j'ai crée le dossier tmp pour stocker mes images mais rien ne fonctionne, svp j'ai besoin de vos aides
Cordialement..
Merci...
Erreur:
L'image<<http://localhost/jpgraph/jpgraph.php>>ne peut etre affiché car elle contient des erreurs.
Voici mon code
____________
<?php
include ("../jpgraph/src/jpgraph.php"); include ("../jpgraph/src/jpgraph_bar.php");
define('MYSQL_HOST', 'localhost'); define('MYSQL_USER', 'root'); define('MYSQL_PASS', ''); define('MYSQL_DATABASE', 'graphe'); // ******************************************************************** // PARTIE : Production des données avec Mysql // ********************************************************************
$sql = <<<EOF SELECT YEAR('DTHR_VENTE') AS ANNEE, COUNT(ID) AS NBR_VENTES FROM 'ventes' GROUP BY YEAR('DTHR_VENTE') EOF;
// Connexion à la BDD $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
// Sélection de la base de données @mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
// Requête $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
// Fetch sur chaque enregistrement while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) { // Alimentation des tableaux de données $tableauAnnees[] = 'Année ' . $row['ANNEE']; $tableauNombreVentes[] = $row['NBR_VENTES']; }
// ******************* // Création du graphique // *******************
// Construction du conteneur // Spécification largeur et hauteur $graph = new Graph(400,250);
// Ajouter une ombre au conteneur $graph->SetShadow();
// Fixer les marges $graph->img->SetMargin(40,30,25,40);
// Création du graphique histogramme $bplot = new BarPlot($tableauNombreVentes);
// Spécification des couleurs des barres $bplot->SetFillColor(array('red', 'green', 'blue')); // Une ombre pour chaque barre $bplot->SetShadow();
// Afficher les valeurs pour chaque barre $bplot->value->Show(); // Fixer l'aspect de la police $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9); // Modifier le rendu de chaque valeur $bplot->value->SetFormat('%d sexe');
// Ajouter les barres au conteneur $graph->Add($bplot);
// Le titre $graph->title->Set("Graphique 'HISTOGRAMME' : sexe"); $graph->title->SetFont(FF_FONT1,FS_BOLD);
// Titre pour l'axe horizontal(axe x) et vertical (axe y) $graph->xaxis->title->Set("sexe"); $graph->yaxis->title->Set("Nombre de sexe");
jordane45
Messages postés38244Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 octobre 2024345 29 juil. 2014 à 21:58
Bonjour,
Tu as vérifié les droits de tes répertoires ?
Tu as fais des 'print_r' de tes variables pour voir si elles sont bonnes..?
Tu as regardé si l'image se créée bien dans le répertoire et si tu arrivais à l'ouvrir directement ?
Tu as essayé d'écrire ta variable $sql avec des guillemets plutôt que des EOF ?
/*
$sql = <<<EOF
SELECT
YEAR('DTHR_VENTE') AS ANNEE,
COUNT(ID) AS NBR_VENTES
FROM 'ventes'
GROUP BY YEAR('DTHR_VENTE')
EOF;*/
$sql = "SELECT YEAR('DTHR_VENTE') AS ANNEE
,COUNT(ID) AS NBR_VENTES
FROM 'ventes'
GROUP BY YEAR('DTHR_VENTE')";
pharelka
Messages postés6Date d'inscriptionmardi 29 juillet 2014StatutMembreDernière intervention29 août 2014 30 juil. 2014 à 13:03
Bonjour Jordan et tout le monde
J'ai essayé de modifier le code comme tu m'as conseillé : j'ai modifié les droits de partage des répertoires, j'ai testé mes variables et aussi j'ai changé le nom du fichier (jpgraphique.php en vente.php) mais cela ne fonctionne non plus...
Voici le code en entier
___________________
<?php
include ("/src/jpgraph.php"); include ("/src/jpgraph_bar.php");
define('MYSQL_HOST', 'localhost'); define('MYSQL_USER', 'root'); define('MYSQL_PASS', ''); define('MYSQL_DATABASE', 'graphe'); // ******************************************************************** // PARTIE : Production des données avec Mysql // ********************************************************************
$sql = ("SELECT YEAR('DTHR_VENTE') AS ANNEE, COUNT(ID) AS NBR_VENTES FROM 'ventes' GROUP BY YEAR('DTHR_VENTE')");
// Connexion à la BDD $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
// Sélection de la base de données @mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
// Requête $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
// Fetch sur chaque enregistrement while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) { // Alimentation des tableaux de données $tableauAnnees[] = 'Année ' . $row['ANNEE']; $tableauNombreVentes[] = $row['NBR_VENTES']; }
printf('<pre>%s</pre>', print_r($tableauAnnees,1)); printf('<pre>%s</pre>', print_r($tableauNombreVentes,1)); print_r($tableauNombreVentes); var_dump($tableauNombreVentes); // ******************* // Création du graphique // *******************
// Construction du conteneur // Spécification largeur et hauteur $graph = new Graph(400,250);
// Ajouter une ombre au conteneur $graph->SetShadow();
// Fixer les marges $graph->img->SetMargin(40,30,25,40);
// Création du graphique histogramme $bplot = new BarPlot($tableauNombreVentes);
// Spécification des couleurs des barres $bplot->SetFillColor(array('red', 'green', 'blue')); // Une ombre pour chaque barre $bplot->SetShadow();
// Afficher les valeurs pour chaque barre $bplot->value->Show(); // Fixer l'aspect de la police $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9); // Modifier le rendu de chaque valeur $bplot->value->SetFormat('%d ventes');
// Ajouter les barres au conteneur $graph->Add($bplot);
// Le titre $graph->title->Set("Graphique 'HISTOGRAMME' : ventes par années"); $graph->title->SetFont(FF_FONT1,FS_BOLD);
// Titre pour l'axe horizontal(axe x) et vertical (axe y) $graph->xaxis->title->Set("Années"); $graph->yaxis->title->Set("Nombre de ventes");
j'ai changé le nom du fichier (jpgraphique.php en vente.php)
... ça ... c'est le nom de ta page PHP contenant le script .....
Visiblement tu ne la sauvegarde pas sur ton serveur et cherche à l'afficher directement.;
$graph->Stroke();
Mais.. au moins pour les tests... pourrais tu essayer de la sauvegardere sur le serveur :
mpmp93
Messages postés6648Date d'inscriptionmercredi 13 avril 2011StatutMembreDernière intervention28 septembre 20154 30 juil. 2014 à 15:57
Bonjour,
J'ai utilisé JPGRAPH (très peu) et je trouve cette librairie peu pratique.
Mon avis: JPGRAPH mange beaucoup de temps machine. Afin de répondre à la demande en graphes, j'ai trouvé une autre solution, une libraire qui génère coté navigateur les graphes à l'aide de javascript: RGraph....
Je viens de trouver la solution :
il a fallut passer en argument de la fonction le nom de l'image qui sera générée et préciser le nom du dossier temporaire dans lequel l'image(ou les images) sera(seront) stockée(s), pour finir unlink permet de supprimer les images créées par jpgraph :
_____________________
graph->Stroke("votreImage.png"); // ici pour definir l'image de sortie // Output line echo ('<img src="votreImage.png">'); // afficher l'image
//Exemple : 1 fonctionne à moitié après il génère une erreur car s'il
//faut rafraichir la page la seconde image générée écrase la
Exemple 1 @unlink("vente.png"); //Permet de supprimer le fichier donc l'image $graph->Stroke("vente.png"); $graph->Stroke("tmp/vente.png"); //tmp: dossier temporaire qu'il faudra créer
//Exemple : 2 celui-ci fonctionne....
/ Suppression du fichier $filename='tmp/vente.png'; if (file_exists("$filename")) { unlink("$filename"); }
// Sauvegarde du graphique $graph->stroke("$filename");