8791 sujets

Développement web côté serveur, CMS

bonjour,
c'est la premiere fois que je vais essayé d'afficher un graph a partir d'un base mysql existante
voila mon code


<?php


  require_once "Artichow/BarPlot.class.php";
  
  
  $graph = new Graph(400, 400);
  $graph->setAntiAliasing(TRUE);
  
  //connection base
  $connection= mysql_connect("localhost","root","");
  mysql_select_db("totaldvpt") or die(mysql_error());
  $req= mysql_query("SELECT PREV, OCT,NOV,DECE,JANV,FEV,MARS,AVRIL,MAI,JUIN,JUILLET,AOUT,SEPT,TOTAL FROM test_excel WHERE  SARL_DELAIR = 'CA. lubrifiant' ");
  
  //les valeur a afficher dans mon graph
  $valeur= array();


 while($t= mysql_fetch_array($req))

    {
     [b] ici je ne sais pas koi mettre, aucune idée !!!!!![/b]
           }
    
    
   
    
    $plot = new BarPlot($valeur);
    
     $plot->setBarColor(
      new Color(250, 230, 180)
   );
   
   $plot->setSpace(
      5, /* Gauche */
      5, /* Droite */
      NULL, /* Haut */
      NULL /* Bas */
   );
   
   $plot->barShadow->setSize(3);
   $plot->barShadow->setPosition(SHADOW_RIGHT_TOP);
   $plot->barShadow->setColor(new Color(180, 180, 180, 10));
   $plot->barShadow->smooth(TRUE);
   
   $graph->add($plot);
   $graph->draw();
  
  
?>



merci pour votre aide le probleme est en gras
Modifié par timo (02 Jul 2009 - 09:34)
Salut,
timo a écrit :
c'est la premiere fois que je vais essayé d'afficher un graph a partir d'un base mysql existante

Tu as déjà essayé avec une base MySQL inexistante ?

timo a écrit :
ici je ne sais pas koi mettre, aucune idée !!!!!!

Il faut que tu remplisses ton tableau $valeur avec les valeurs qui t'intéressent.

Exemple :
while ( $data = mysql_fetch_assoc( $req ) )
{
   $valeur[] = $data['OCT'];
}

Après, encore faut-il que ta requête te sorte les valeurs que tu attends.
effectivement ma requete marche bien et me ramene toute les valeur
c'est au niveau de while que je veut ramener oct nov dece.....
et c'est la ou je sais pas comment tout ramener
!!!!!!!!!!!!
ok c'est bon j'ai réussi a aficher Smiley smile )) on mettant

 $valeur[0]=$t['PREV'];
        $valeur[1]=$t['OCT'];
        $valeur[2]=$t['NOV'];
        $valeur[3]=$t['DECE'];
        $valeur[4]=$t['JANV'];
        $valeur[5]=$t['FEV'];
        $valeur[6]=$t['MARS'];
        $valeur[7]=$t['AVRIL'];
        $valeur[8]=$t['MAI'];
        $valeur[9]=$t['JUIN'];
        $valeur[10]=$t['JUILLET'];
        $valeur[11]=$t['AOUT'];
        $valeur[12]=$t['SEPT'];
        $valeur[13]=$t['TOTAL'];


seul probleme arriver au deux derniers lignes

 $valeur[12]=$t['SEPT'];
        $valeur[13]=$t['TOTAL'];

il m'affiche erreur class plot: expected numeric values for the plot, et quand je les mets en commentaire il m'affiche bien mon graph!!!!
j'ai regarder ds ma base le champ DECE est vide mais je voi pas le probleme !!! est ce que ca vient de la??? avez vous une idée!!!!!!!
Là où tu te plantes dans ta requête, c'est qu'elle ne doit retourner qu'un seul champ si elle retournes plusieurs enregistrements, pour que dans ton while tu puisses remplir le tableau $valeur.

Si elle ne te retourne qu'un enregistrement alors tu n'as pas besoin du while, tu gardes ta multitude de champs retournés et tu mets les valeurs de $data dans $valeur (avec array_values) (et tu peux même mettre après des labels à tes colonnes en mettant par exemple dans une variable $label les clefs de $data avec array_keys (et après rajouter ces labels avec les méthodes de la classe Artichow qui vont bien)).
c cool j'affiche mon graph Smiley smile )
pour une finition, il m'affiche ds les abscisses 0 1 2 3 4
j'aimerais que au lieu de ca il m'affiche vraiment OCT NOV DEC JANV ........
y'a t'il un moyen de le faire!!!!! Smiley eek Smiley eek

merci beaucoup beaucoup pour votre aide
Smiley biggrin Smiley biggrin Smiley biggrin
je n'est pas trop saisie ce que tu voulais me dir , sans doute parce que je suis débutant en php
mais voila ce que je vien de faire

while($t= mysql_fetch_row($req))

    {
       
$keys = array_keys($valeur); //j'essaie de ramener les valeur oct nov dece.... erreur your plot must have at least 1 value..
for($i=0;$i<12; $i++)
$keys[$i]=$t[$i];



 }


chui perdu Smiley sweatdrop