bonjour les amis chui débutante en php et j'ai crée une application web où j'ai présenté des données statistiques ,mai elle ne marche pas,
alors voici le code, et merci bk,


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
126
127
128
   <?php
          include "config.php";
        $query= mysql_query('SELECT MONTH(dateval) AS mois, Name,(SELECT COUNT(*)  FROM '.$table.'
WHERE  MONTH(dateval)= mois AND YEAR(dateval)=2014)AS statval FROM '.$table.'
WHERE  YEAR(dateval)=2014 GROUP BY mois ORDER BY mois ASC');
         while ($donnee = mysql_fetch_array($query))
         {
             echo'count='.$donnee['statval'];
         }
        $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->statval;
    //Prendre la première quantité vendu comme minimum et maximum
    if($i==0)
		{
			$min=$row->statval;
			$max=$row->statval;
		}
    //Tester si la quantité vendu est inférieur au minimum et le prendre si il l'est
    if($row->statval < $min)
		{
			$min=$row->statval;
		}
    //Tester si la quantité vendu est inférieur au maximum et le prendre si il l'est
    else
		{
			if($row->statval > $max)
			 {
			 	$max=$row->statval;
			}
		}
    $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);
 
      ?>