IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[GD] Problème d'affichage de l'image


Sujet :

Langage PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut [GD] Problème d'affichage de l'image
    Voila depuis 2 jours j'ai un problème pour afficher un graphique en fonction de donnée dans une bdd voila mon problème:

    je recupére les données d'une table que je met dans un tableau:

    La fonction connect()

    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
    <?php
    function connect() {
    	$hote = 'localhost';
    	$name = 'perso';
    	$user = 'root';
    	$pwd  =  '*********';
     
    	try {
    		$bdd = new PDO('mysql:host='.$hote.';dbname='.$name, $user, $pwd);
    	}
    	catch(Exception $e) {
    	        echo 'Erreur : '.$e->getMessage().'<br />';
    	        echo 'N° : '.$e->getCode();
    	}
    	return $bdd;
    }


    La fonction get_all_article()(Static dans la classe article)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    static public function get_all() {
    	$bdd=connect();
    	return $bdd->query("SELECT * FROM articles")->fetchAll(PDO::FETCH_ASSOC);
    }
    Maintenant le code qui est censé générer l'image (dans un fichier histogramme.php a part du reste)


    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
    <?php
    $i = 0;
    $max = 0;
    /*
    *je récupère les valeur retourné dans ma requête
    *et je détermine le max (pour déterminer la taille final de l'image)
    */
    $all_values = Article::get_all();
    foreach ($all_values as $value){
    	$array_valeur[$i] = (int) $value['I_ARTICLE_STOCK'];
     
            //ici si je fait un echo $array_valeur[$i].'</br>';
            //j'ai bien les valeur dans mon tableau
     
    	if ($max < $array_valeur[$i]) {
    		$max = $array_valeur[$i];
    	}
    	$i++;
    }
    header('Content-Type: image/png');
     
    $im = imagecreatetruecolor(600, 600); //normalement déterminer par $i et $max
    $bleu = imagecolorallocate($im, 29, 56, 252);
    $bleu2 = imagecolorallocate($im, 134, 149, 253);
    $gris = imagecolorallocate($im, 193, 193, 193);
     
    // ariére plan gris
    imagefilledrectangle($im, 0, 0, 599, 599, $gris);
     
     
    $echelle = 400/$max; //nombre d'unité par pixel taille du graph en lui même 400px
    //initialisation des coordonnées
    $x2 = 10;
    $y2 = 405; 
    $x1 = 5;
     
    $i = count($array_valeur);
    for ($j = 0; $j < $i; $j++) {
    	$y1 =  ceil($y2 - $echelle*$array_valeur[$j]); //taille de la barre
    	imagefilledrectangle($im, $x1,$y1,$x2,$y2, $bleu); //affichage 
    	$x2 += 10;
    	$x1 = $x2 - 5;
            //si je fait:
    	//echo 'imagefilledrectangle($im, '.$x1.','.$y1.','.$x2.','.$y2.', $bleu);<br>';
            // le code est bon pas de float a la place de int ect... 
    }
     
    imagepng($im); //affichage de l'image
    imagedestroy($im);
    ?>
    J'appel l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="display/image_histo.php" />
    Et j'obtiens : voir la première image ci-dessous


    Maintenant en bidouillant je remplace:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $all_values = Article::get_all();
    foreach ($all_values as $value){
    	$array_valeur[$i] = (int) $value['I_ARTICLE_STOCK'];
     
            //ici si je fait un echo $array_valeur[$i].'</br>';
            //j'ai bien les valeur dans mon tableau
     
    	if ($max < $array_valeur[$i]) {
    		$max = $array_valeur[$i];
    	}
    	$i++;
    }
    ?>
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    // 
    //array(....) généré en fesant un echo dans le foreach précédent 
    //puis copié collé pour pas d'erreur :)
    //
    $all_values = array(639, 164, 1654, 159, 755, 3573, 3830, 203, 272, 103, 0, 46, 2502, 2312, 509, 2829, 1419, 2359, 482, 3461, 106, 3288, 2881, 3455, 974, 2130, 62, 104, 216, 1321, 64, 23, 101, 43, 59, 362, 802, 172, 206, 146, 212, 88, 0, 143, 80, 123, 241, 288, 123, 139, 384);
    foreach ($all_values as $value){
    	$array_valeur[$i] = $value;
    	if ($max < $array_valeur[$i]) {
    		$max = $array_valeur[$i];
    	}
    	$i++;
    }
    ?>
    Et j'obtiens bien l'image mais les données ne viennent de la bdd:
    (voir i'image en pj)

    Avec le code de remplacement j'ajoute juste ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = Articles::get_all();
    Avec ça sa marche plus , je pense que ça viens de ma fonction get_all ou connect() comme si il y avait un "echo" dans ces fonctions.


    Merci d'avance
    Alexandre
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'affichage d'une image avec Glade.
    Par tistri dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 21/04/2007, 18h56
  2. Problème d'affichage d'une image GIF
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/04/2007, 10h27
  3. Problème d'affichage d'une image
    Par parano dans le forum C++
    Réponses: 12
    Dernier message: 21/03/2007, 18h57
  4. problème d'affichage d'une image au format DDS (24-bit)
    Par thunderbird dans le forum DirectX
    Réponses: 2
    Dernier message: 22/03/2006, 11h00
  5. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo