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

Bibliothèques et frameworks PHP Discussion :

[Artichow] Faire une courbe dynamiquement


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut [Artichow] Faire une courbe dynamiquement
    Bonjour,
    Je suis en train de réaliser une courbe avec Artichow permettant de connaitre le nombre de visites aux cours des années.
    Mon seul souci c'est qu'il m'affiche qu'une seule date et son estimation, alors que dans ma base de données j'ai deux dates avec leurs nombre de visites :
    2007 : 200 visites.
    2009 : 400 visites.
    Il ne m'affiche que le 2007.
    Comment faire pour qu'il m'affiche toutes mes estimations qui correspondent aux dates ?
    Voici mon 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
     
    require_once "pannel/stats/Artichow/LinePlot.class.php";
       include ('connexion.php');
     
       $annee = "SELECT DISTINCT year(SUIVRE_date) FROM suivre";
       $execute = mysql_query($annee);
     
       	while($row = mysql_fetch_array($execute))
    	{ 
    	$monannee = $row[0];
       $select = "SELECT sum(SUIVRE_nbr) FROM suivre WHERE year(SUIVRE_date) = '".$row[0]."'";
       $query = mysql_query($select);
     
       while($row2 = mysql_fetch_array($query))
       {
    	$mesvaleurs = $row2[0];
       }
    	$graph = new Graph(400, 300);
       $graph->setAntiAliasing(TRUE);
     
        $values = array($mesvaleurs);
       $plot = new LinePlot($values);
       $plot->setBackgroundColor(new Color(240, 240, 240));
     
       $plot->hideLine(TRUE);
       $plot->setFillColor(new Color(180, 180, 180, 75));
     
       $plot->grid->setBackgroundColor(new Color(235, 235, 180, 60));
     
       $plot->yAxis->setLabelPrecision(2);
     
       $days = array($monannee);
     
       $plot->xAxis->setLabelText($days);
     
       $plot->setSpace(6, 6, 10, 10);
     
       $plot->mark->setType(Mark::IMAGE);
       $plot->mark->setImage(new FileImage("pannel/stats/Artichow/images/star.png"));
     
       $plot->label->set($values);
       $plot->label->move(0, -23);
       $plot->label->setBackgroundGradient(
          new LinearGradient(
             new Color(250, 250, 250, 10),
             new Color(255, 200, 200, 30),
             0
          )
       );
       $plot->label->border->setColor(new Color(20, 20, 20, 20));
       $plot->label->setPadding(3, 1, 1, 0);
     
       $graph->add($plot);
       $graph->draw();
          }
    Merci d'avance

  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
    Tu n'as besoin que d'une seule requête et il faut utiliser un tableau pour recolter tes valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $days = array();
    $values = array();
    $select = "SELECT SUIVRE_date, SUM(SUIVRE_nbr) FROM suivre GROUP BY SUIVRE_date";
    $query = mysql_query($select);
    while($row = mysql_fetch_array($query))
       {
            $days[] = $row[0];
    	$values[] = $row[1];
       }

  3. #3
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Cela ne marche toujours pas, il ne m'affiche qu'une date.
    L'erreur vient peut être pas de ma requête mais plutot de comment je l'utilise plus bas... nan ?
    Voici 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
     
    <?php
     
       require_once "pannel/stats/Artichow/LinePlot.class.php";
       include ('connexion.php');
     
    $days = array();
    $values = array();
    $select = "SELECT year(SUIVRE_date), SUM(SUIVRE_nbr) FROM suivre GROUP BY SUIVRE_date";
    $query = mysql_query($select);
    while($row = mysql_fetch_array($query))
       {
        $days[0] = $row[0];
    	$values[0] = $row[1];
       }
     
     
    	$graph = new Graph(600, 400);
       $graph->setAntiAliasing(TRUE);
     
        $values = array($values[0]);
       $plot = new LinePlot($values);
       $plot->setBackgroundColor(new Color(240, 240, 240));
     
       $plot->hideLine(TRUE);
       $plot->setFillColor(new Color(180, 180, 180, 75));
     
       $plot->grid->setBackgroundColor(new Color(235, 235, 180, 60));
     
       $plot->yAxis->setLabelPrecision(0);
     
       $days = array($days[0]);
     
       $plot->xAxis->setLabelText($days);
     
       $plot->setSpace(6, 6, 10, 10);
     
       $plot->mark->setType(Mark::IMAGE);
       $plot->mark->setImage(new FileImage("pannel/stats/Artichow/images/star.png"));
     
       $plot->label->set($values);
       $plot->label->move(0, -23);
       $plot->label->setBackgroundGradient(
          new LinearGradient(
             new Color(250, 250, 250, 10),
             new Color(255, 200, 200, 30),
             0
          )
       );
       $plot->label->border->setColor(new Color(20, 20, 20, 20));
       $plot->label->setPadding(3, 1, 1, 0);
     
       $graph->add($plot);
       $graph->draw();
     
     
    ?>

  4. #4
    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
    La syntaxe [] était intentionnelle.

  5. #5
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Oui mais ca me marque une erreur : Cannot use [] for reading

  6. #6
    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
    Tu as bien mis le code comme je l'ai écris ?

  7. #7
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Oui oui, j'ai écris le même code que toi :
    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
     
       require_once "pannel/stats/Artichow/LinePlot.class.php";
       include ('connexion.php');
     
     
    $days = array();
    $values = array();
    $select = "SELECT SUIVRE_date, SUM(SUIVRE_nbr) FROM suivre GROUP BY SUIVRE_date";
    $query = mysql_query($select);
    while($row = mysql_fetch_array($query))
       {
         $days[] = $row[0];
    	$values[] = $row[1];
       }
    Mon erreut viendra pas d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $values = array($values[]);
       $plot = new LinePlot($values);
       $plot->setBackgroundColor(new Color(240, 240, 240));
    ou encore de la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $days = array($days[]);
     
       $plot->xAxis->setLabelText($days);

  8. #8
    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
    Ces deux lignes sont a mettre à la poubelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $values = array($values[]);
    $days = array($days[]);

  9. #9
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Oui en effet ca semble logique
    Merci beaucoup sabotage ca marche maintenant

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

Discussions similaires

  1. [Artichow] Dessiner une courbe avec plusieurs couleurs
    Par m_jaz3 dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 03/11/2008, 16h26
  2. comment faire une animation dynamique
    Par artotal dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 16/06/2008, 11h49
  3. Faire une image dynamique pour un ButtonField
    Par zooffy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/05/2008, 15h41
  4. [Artichow] Créer une courbe
    Par faucon54 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/05/2007, 00h54
  5. Comment faire une connexion dynamique à une base avec ADO?
    Par Borisam dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/03/2006, 14h22

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