Bonjour,
j'ai suivi ce cours pour créer un histogramme http://andry.developpez.com/tutoriel...e=page_1#LII-C

J'ai tout d'abord essayer de m'inspirer du code du cours puis de le changer en mettant mes valeurs, mais je n'avais aucun résultat. J'ai donc essayé de copier/coller intégralement le code qu'il y a sur le cours en créantla même base de données que celle du cours, mais rien n'y fait lorsque j'intègre l'image du graphe elle ne s'affiche pas et lorsque je me rend directement sur le image.php rien ne s'affiche non plus, j'ai simplement un écran noir.

Je précise que je débute et que je ne comprends pas forcément tout du code présent sur le tuto.

Voici le code et je ne vous met pas celui de mon deuxième test étant donné que c'est un copié collé du code du tuto.

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
<?php 
$host="localhost";
$utilisateur="root";
$motdepasse="";
$base="arrets";
$conexion = new PDO('mysql:host='.$host.';dbname='.$base, $utilisateur, $motdepasse);
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sqlQuery = "SELECT type as type, sum(duree) as duree from arret group by type order by sum(duree) desc";
$sth = $conexion->prepare($sqlQuery, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$result = $sth->fetchAll(PDO::FETCH_OBJ);
$i=0;
$js=array();
foreach($result as $row)
{
    //Prendre la premiere quantite vendue comme le minimum et maximum
	//Mettre les noms de produit et les mois de ventes dans des tableaux
	if($i==0)
    {
        $min=$row->duree;
        $max=$row->duree;
        array_push($js, $row->type);
    }
 
	//Inserer le mois de vente dans le tableau s'il n'est pas encore enregistrer
    if(!in_array($row->type,$js))
        {
            array_push($js, $row->type);
        }
 
    if($row->duree < $min)
		{
			$min=$row->duree;
		}
    else
		{
			if($row->duree > $max)
				{$max=$row->duree;}
		}
    $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 par rapport au nombre de ligne et nombre de mois
$largeur=$i*20+(count($js)*10)+100;
$hauteur=400;
$absis=80;
$courbe=imagecreatetruecolor($largeur, $hauteur);
//Générer un tableau de couleurs
$couleur=array();
$red=85;
$blue=85;
$green=85;
 
    $couleur[$n]=imagecolorallocate($courbe, $red,$green , $blue);
 
//Les autre couleurs utils
$ligne=imagecolorallocate($courbe, 220, 220, 220);
$fond=imagecolorallocate($courbe, 250, 250, 250);
$noir=imagecolorallocate($courbe, 0, 0, 0);
$blanc=imagecolorallocate($courbe, 255, 255, 255);
$rouge=imagecolorallocate($courbe, 255, 0, 0);
//Colorer le fond
imagefilledrectangle($courbe,0 , 0, $largeur, $hauteur, $fond);
//Tracer l'abscisse et l'ordonnée
imageline($courbe, 50, $hauteur-$absis, $largeur-10,$hauteur-$absis, $noir);
imageline($courbe, 50,$hauteur-$absis,50,20, $noir);
if($min!=0)
{
    $absis+=30;
    $a=30;
}
$nbOrdonne=10;
//Calculer les échelles suivants les abscisses et ordonnées
$echelleX=($largeur-90-((count($js)*10)))/$i;
$echelleY=($hauteur-$absis-20)/$nbOrdonne;
$i=$min;
$py=($max-$min)/$nbOrdonne;
$pasY=$absis;
//Tracer les grides
while($pasY<($hauteur-19))
{
    imagestring($courbe, 2,10 , $hauteur-$pasY-6, round($i), $noir);
    imageline($courbe, 50, $hauteur-$pasY, $largeur-20,$hauteur-$pasY, $ligne);
    $pasY+=$echelleY;
    $i+=$py;
}
 
 
 
$pasX=60;
 foreach($result as $row)
 {
        //Ecrire le mois en Français en abscisse
		imagestring($courbe, 2, $pasX,$hauteur-$absis+32 , type, $noir);
		//Décaller 10 px du mois précédent
        $pasX+=10;
 
   //Calculer la hauteur de la rectangle
   $y=($hauteur) -(($row->duree -$min) * ($echelleY/$py))-$absis;
   //Prendre la couleur correspondante au produit
   $im = imagecreatetruecolor(55, 30);
   $white = imagecolorallocate($im, 255, 255, 255);
   //Dessiner le rectangle
   imagefilledrectangle($courbe,$pasX-10 , $hauteur-$absis+$a, $pasX+10, $y, $white);
   //Ecrire la valeur en verticale
   imagefttext($courbe, 10, 270, $pasX-3, $y+5, $blanc, $font_file, $row->duree);
   //Decaller le prochain rectangle
   $pasX+=$echelleX;
}
 
imagepng($courbe);
imagedestroy($courbe);
?>