imenferjani
Messages postés7Date d'inscriptionvendredi 23 mars 2012StatutMembreDernière intervention19 mai 2012
-
15 mai 2012 à 14:23
imenferjani
Messages postés7Date d'inscriptionvendredi 23 mars 2012StatutMembreDernière intervention19 mai 2012
-
17 mai 2012 à 01:23
Bonjour,
je suis en cours de réaliser une application médicale, je veux faire l'affichage des statistiques avec des graphes.J'ai utilisé jpgraph-1.27.1
et j'ai testé le code ci-dessous mais il m'affiche des erreurs au niveau de fichier jpgraph.php exactement Function split() is deprecated in C:\wamp\www\exempleStatistiques\jpgraph-1.27.1\src\jpgraph.php on line 193
et une autre erreur : JpGraph Error Your PHP installation does not seem to have the required GD 2.x library enabled. Please see the PHP documentation, "Image" section. Make sure that "php_gd2.dll" statement is uncomment in the [modules] section in the php.ini file.
<?php
include_once ("../jpgraph-1.27.1/src/jpgraph.php");
include_once ("../jpgraph-1.27.1/src/jpgraph_bar.php");
///database
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'tuto_jp_graph');
//$tdata1y[] = array();
//$tdata2y[] = array();
// **********************************************
// Extraction des données dans la base de données
// *************************************************
$sql = <<<EOF
SELECT (
year
) AS ANNEE, COUNT( ID ) AS NBR_pub
FROM publications
GROUP BY year
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die(mysql_error());
while ($row = mysql_fetch_assoc($mysqlQuery)) {
$data1y[] = $row['ANNEE'];
$data2y[] = $row['NBR_pub'];
// Create the graph. These two calls are always required
$graph = new Graph(310,200,'auto');
$graph->SetScale("textlin");
$graph->img->SetMargin(40,30,20,40);
$graph->SetShadow();
// Create the bar plots
$b1plot = new BarPlot($data1y);
$b1plot->SetFillColor("orange");
$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
"bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
$b1plot->SetCSIMTargets($targ,$alts);
$b2plot = new BarPlot($data2y);
$b2plot->SetFillColor("blue");
$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
"bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
$b2plot->SetCSIMTargets($targ,$alts);
// Create the grouped bar plot
$abplot = new AccBarPlot(array($b1plot,$b2plot));
$abplot->SetShadow();
$abplot->value->Show();
// ...and add it to the graPH
$graph->Add($abplot);
imenferjani
Messages postés7Date d'inscriptionvendredi 23 mars 2012StatutMembreDernière intervention19 mai 2012 15 mai 2012 à 14:42
Merci bien j'ai résous le problème de l'extension il me reste le probleme de la fonction CheckPHPVersion
l'erreur exactement est :
Function split() is deprecated in C:\wamp\www\exempleStatistiques\jpgraph-1.27.1\src\jpgraph.php on line 193
j'ai changé split par explode il m'a afficher encore des erreurs
merci bien de me répondre
imenferjani
Messages postés7Date d'inscriptionvendredi 23 mars 2012StatutMembreDernière intervention19 mai 2012 15 mai 2012 à 18:36
merci de m'as répondu mais j'ai essayé et cherché de la remplacer par preg_split() il m'affiche encore cette erreur:
preg_split() [function.preg-split]: Empty regular expression in
Vous n’avez pas trouvé la réponse que vous recherchez ?
imenferjani
Messages postés7Date d'inscriptionvendredi 23 mars 2012StatutMembreDernière intervention19 mai 2012 17 mai 2012 à 01:23
bonjour,
j'ai essayé de faire un test d'affichage des statistiques avec un graphe sur cette base de données mysl
/* Type de produit*/
create table type
(
id_type int not null auto_increment,
libelle_type varchar(30) not null,
primary key (id_type)
);
/*Produit*/
create table produit
(
id_produit int not null auto_increment,
id_type int not null,
libelle_produit varchar(30),
primary key (id_produit)
);
/*Vente de Poduit*/
create table vente
(
id_vente bigint not null auto_increment,
id_produit int not null,
quantite int not null,
prix float not null,
dates datetime not null,
primary key (id_vente)
);
alter table produit add constraint type_produit foreign key (id_type) references type (id_type);
alter table vente add constraint vente_produit foreign key (id_produit) references produit (id_produit);
puis j'ai testé ce code php:
<?php
$host="localhost";
$utilisateur="root";
$motdepasse="";
$base="tutoriel";
$conexion=mysql_connect($host,$utilisateur,$motdepasse) or die('Connexion impossible: ' . mysql_error());
$db=mysql_select_db($base, $conexion) or die('Connexion a la base impossible : ' . mysql_error());
$query=mysql_query('SELECT MONTH(dates) AS mois, libelle_produit,(SELECT SUM(quantite) FROM vente
WHERE produit.id_produit=vente.id_produit AND MONTH(dates)=mois AND YEAR(dates)=2008)as qtvendu FROM vente,produit
WHERE produit.id_produit=vente.id_produit AND produit.id_produit=1 AND YEAR(dates)=2008 GROUP BY mois ORDER BY mois ASC');
$moisFr=array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Decembre');
$resultat=array();
$i=0;
while($row=mysql_fetch_object($query))
{
//Mettre la ligne dans le tableau
$resultat[$row->mois]=$row->qtvendu;
//Prendre la première quantité vendu comme minimum et maximum
if($i==0)
{
$min=$row->qtvendu;
$max=$row->qtvendu;
}
//Tester si la quantité vendu est inférieur au minimum et le prendre si il l'est
if($row->qtvendu < $min)
{
$min=$row->qtvendu;
}
//Tester si la quantité vendu est inférieur au maximum et le prendre si il l'est
else
{
if($row->qtvendu > $max)
{
$max=$row->qtvendu;
}
}
$i++;
}
//Type mime de l'image
header('Content-type: image/png');
//Chemin vers le police à utiliser
$font_file = './arial.ttf';
//Adapter la largeur de l'image avec le nombre de donnée
$largeur=$i*50+90;
$hauteur=400;
//Hauteur de l'abscisse par rapport au bas de l'image
$absis=80;
//Création de l'image
$courbe=imagecreatetruecolor($largeur, $hauteur);
//Allouer les couleurs à utiliser
$bleu=imagecolorallocate($courbe, 0, 0, 255);
$ligne=imagecolorallocate($courbe, 220, 220, 220);
$fond=imagecolorallocate($courbe, 250, 250, 250);
$noir=imagecolorallocate($courbe, 0, 0, 0);
$rouge=imagecolorallocate($courbe, 255, 0, 0);
//Colorier le fond
imagefilledrectangle($courbe,0 , 0, $largeur, $hauteur, $fond);
//Tracer l'axe des abscisses
imageline($courbe, 50, $hauteur-$absis, $largeur-10,$hauteur-$absis, $noir);
//Tracer l'axe des ordonnées
imageline($courbe, 50,$hauteur-$absis,50,20, $noir);
//Decaler 10px vers le haut le si le minimum est différent de 0
if($min!=0)
{
$absis+=10;
$a=10;
}
//Nombres des grides verticales
$nbOrdonne=10;
//Calcul de l'echelle des abscisses
$echelleX=($largeur-100)/$i;
//Calcul de l'echelle des ordonnees
$echelleY=($hauteur-$absis-20)/$nbOrdonne;
$i=$min;
//Calcul des ordonnees des grides
$py=($max-$min)/$nbOrdonne;
$pasY=$absis;
while($pasY<($hauteur-19))
{
//Affiche la valeur de l'ordonnee
imagestring($courbe, 2,10 , $hauteur-$pasY-6, round($i), $noir);
//Trace la gride
imageline($courbe, 50, $hauteur-$pasY, $largeur-20,$hauteur-$pasY, $ligne);
//Decaller vers le haut pour la prochaine gride
$pasY+=$echelleY;
//Valeur de l'ordonnee suivante
$i+=$py;
}
$j=-1;
//Position de la première mois de vente
$pasX=90;
//Parcourir le tableau pour le traçage de la diagramme
foreach ($resultat as $mois => $quantite) {
//calculer la hateur du point par rapport à sa valeur
$y=($hauteur) -(($quantite -$min) * ($echelleY/$py))-$absis;
//dessiner le point
imagefilledellipse($courbe, $pasX, $y, 6, 6, $rouge);
//Afficher le mois en français avec une inclinaison de 315°
imagefttext($courbe, 10, 315, $pasX, $hauteur-$absis+20, $noir, $font_file, $moisFr[$mois-1]);
//Tacer une ligne veticale de l'axe de l'abscisse vers le point
imageline($courbe, $pasX, $hauteur-$absis+$a, $pasX,$y, $noir);
if($j!==-1)
{
//liée le point actuel avec la précédente
imageline($courbe,($pasX-$echelleX),$yprev,$pasX,$y,$noir);
}
//Afficher la valeur au dessus du point
imagestring($courbe, 2, $pasX-15,$y-14 , $quantite, $bleu);
$j=$quantite;
//enregister la hauteur du point actuel pour la liaison avec la suivante
$yprev=$y;
//Decaller l'abscisse suivante par rapport à son echelle
$pasX+=$echelleX;
}
//Envoyer le flux de l'image
imagepng($courbe);
//Desallouer le memoire utiliser par l'image
imagedestroy($courbe);
?>
iil ne fonctionne pas il m'affiche que l'image contient des erreurs et je n'ai pas arrivé à les résoudre aider-moi s'il vous plait