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 :

graphe statistique php


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut graphe statistique php
    Bjr, je travaille sur les graphes statistiques, j’ai trouvé ce tuto mais il m’affiche cet erreur

    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\stock-graphe\stat.php) in C:\wamp\www\stock-graphe\stat.php on line 20

    Fatal error: Call to undefined function imagecreatetruecolor() in C:\wamp\www\stock-graphe\liste2.php on line 23

    Voici le code :
    Code sql : 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
    /* 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);


    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
    $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);



    Si quelqu’un peut m’aider, j’suis debutante
    merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut que l'extension GD soit activée sur ton serveur.

  3. #3
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Points : 889
    Points
    889
    Par défaut
    Bonjour.
    Pour te faciliter la tâche, je te conseille d'utiliser une librairie graphique comme jpgraph. tu trouveras un excellent tutoriel ici http://eric-pommereau.developpez.com...verte-jpgraph/
    Yves

  4. #4
    Invité
    Invité(e)
    Par défaut
    Lien mort dans le tuto : "Site officiel de la librairie JpGraph"

    => http://jpgraph.net/

Discussions similaires

  1. graphe statistique php
    Par gelak dans le forum Langage
    Réponses: 1
    Dernier message: 17/09/2013, 11h10
  2. [GD] Création de graphes statistiques et géométriques avec PHP et la librairie GD
    Par andry.aime dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 24/09/2009, 10h59
  3. [cr4.6] graphes, statistique
    Par amazircool dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 24/07/2006, 02h24
  4. [langage]Comparatif des statistiques PHP-ASP-JSP
    Par d.w.d dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 01/12/2005, 11h01

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