mysql_fetch_assoc et legende d'un graphique

Petit nouveau ! | 6 Messages

26 févr. 2012, 17:13

Bonjour à tous,
je suis en train d'essayer de récuperer des infos d'une colonne d'un database et les afficher sous forme de "camember" en utilisant phplot.
j'arrive à passer depuis de mon mysql_fetch_assoc le total pour chaque valeur comme ceci:
$query = "SELECT ID PRODOTTO,COUNT(*) AS col_num FROM extrabanca WHERE MESE = 'gennaio' GROUP BY PRODOTTO ASC";
$result = mysql_query ($query) or trigger_error(mysql_error()." in ".$query);
while($dbres = mysql_fetch_assoc($result))
{
$i = 0;
$example_data[] = array($i,$dbres['col_num'],$dbres['PRODOTTO']);
$legend[] = $dbres['col_num'];
$i++;
}
$graph->SetDataValues($example_data);
$graph->SetLegendPixels(8,8);
$graph->SetLegend($legend);
j'aimerai pouvoir passer le nom du champ.
comment faire?
Merci!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 févr. 2012, 23:06

salut,

heu $dbres['ID PRODOTTO'] ?

sinon vérifie le nom du chemin


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

27 févr. 2012, 01:22

salut,

heu $dbres['ID PRODOTTO'] ?

sinon vérifie le nom du chemin


@+
cela aurait été trop simple :P ...
entre autres je me suis rendu compte que j'ai un bool(false) sur vardump($dbres). ce qui m'amène à me demander.
1) si j'ai un false, pourquoi le camembert est correct?
2) comment structurer ma query pour récuperer le nom et le nombre de chaque prodotto sachant que j'ai une table de ce genre:
id prodotto
1 prod1
2 prod1
3 prod2
4 prod3
5 prod1
afin de passer ces données pour le camember.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 févr. 2012, 10:11

Ben je ne connais pas la structure de ta table donc je ne peux pas trop savoir.

Mais si le retour de mysql_fetch_assoc est false, c'est qu'il doit y avoir une erreur.
regarde ce que retourne mysql_query afin de voir si ce n'est pas la requête SQL qui pose problème (ce qui ne m'étonnerais pas au vue de la requête que tu indique).

donc :
1/ active les messages d'erreurs : error_reporting(E_ALL |E_STRICT); en 1ère ligne du script
2/ il faut toujours tester le retour d'une requête SQL par exemple : if ($result === false) { echo 'Erreur SQL : '.mysql_error().'<br />Avec la requete SQL : '.$query;} else { //traitement de la requete }
3/ finir le script :)

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

29 févr. 2012, 12:27

La fonction mysql_field_name() peut répondre à ton problème si tu mets toujours la colonne à la même position.