Bonjour, en fait j ai bien cherche sur le net, mais je n ai pas encore trouver la bonne solution. J'espère bien que vous m aidez. En fait, je veux dessiner un Histogramme depuis des données stokees sur ma BDD MySql. Alors, quant j affiche l histogramme s une façon statique ça marche ... mais quant j ajoute le code
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
<?php
include("se_connecter_BD1.php");
?>
 
pour que je puisse me connecter a la base ca ne marche pas. 
voici le code qui marche :
----------------------------------------------------------
<?php
  // On pourra supposer que les données sont lues
  // dans une base de données mais dans l'immédiat
  // a titre d'exemple elles sont simplement codées "en dur"
  $valeurs = array(12,23,9,58,23,26,57,48,12);
 
  header("Content-type: image/png");
 
  $largeur = 250;
  $hauteur = 200;
  $img = imageCreate($largeur, $hauteur);
  $rouge         = imageColorAllocate($img, 200, 100, 100);
  $noir          = imageColorAllocate($img,   0,   0,   0);
  $fond          = imageColorAllocate($img, 240, 240, 240);
  $barreCouleur  = imageColorAllocate($img,   0, 255,   0);
  //imagecolortransparent($im,$rouge);
 
  $titre       = "Histogramme";
  $titrePolice = 5;
  imageString($img, $titrePolice,
              ($largeur-ImageFontWidth($titrePolice)*strlen($titre))/2,
              0, $titre, $noir);
  //imageTTFText($im, 15, 90, $largeur-10, $hauteur-10, $noir, "Gigi.ttf",
  //           "Copyright PHP Facile !");
 
  // Tracé du fond de l'histogramme
  imageFilledRectangle($img, 10, 20, $largeur-25, $hauteur-10, $fond);
 
  // Connaissant le nombre de barres = sizeOf($valeurs) 
  // et la largeur de l'image (en tenant compte des bords)
  // il est possible de déterminer la largeur d'une barre
  $barreLargeur = (int)(($largeur-35)/(1.5*sizeOf($valeurs)+0.5));
 
  // Pour ajuster l'échelle (en hauteur) il faut déterminer
  // la plus grande valeur du tableau
  $max = 0;
  for ($i=0; $i<sizeOf($valeurs); $i++) {
    if ($valeurs[$i]>$max) $max = $valeurs[$i];
  }
 
  // Nous avons toutes les informations nécessaire
  // il est alors possible de tracer toutes les barres
  for ($i=0; $i<sizeOf($valeurs); $i++) {
    $x = 10+(int)($barreLargeur*(0.5+$i*1.5));
    $barreHauteur = (int)(($valeurs[$i]*($hauteur-40))/$max);  
 
    imageFilledRectangle($img, $x, 
                         $hauteur-15-$barreHauteur,
                         $x+$barreLargeur,
                         $hauteur-15,
                         $barreCouleur);
  }
 
  imagePNG($img);
  imageDestroy($img);  
?> 
----------------------------------------------------------------