grafico-php-mysql

Sargon

Utente Attivo
22 Mar 2012
45
0
0
Ciao a tutti, sto diventando matto per realizzare un grafico in php-mysql ricorrendo alla libreraia phpgraphlib.

io ho un database con i seguenti campi

id

tortellini

spaghetti

gnocchi

ho realizzato un form, l'utente inserisce il numero di tortellini che ha mangiato poi spaghetti e gnocchi.
Vorrei rappresentare il tutto come un istogramma come posso fare ?

Vi posto questo codice..

Grazie mille a tutti
PHP:
<?php
include("phpgraphlib.php");
$graph=new PHPGraphLib(1000,1000); 
$link = mysql_connect('', '', '')
   or die('Could not connect: ' . mysql_error());
     
mysql_select_db('my_partengamma') or die('Could not select database');
  
$dataArray=array();
  
//get data from database
$sql="SELECT pasta, gnocchi, tortellini FROM alimenti order BY id";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if ($result) {
  while ($row = mysql_fetch_assoc($result)) {
      $pasta=$row["pasta"];
$gnocchi=$row["gnocchi"];
$tortellini=$row["tortellini"];
    
      //add to data areray

  }
}
  
//configure graph
$graph->addData($dataArray);
$graph->setTitle("Sales by Group");
$graph->setGradient("lime", "green");
$graph->setBarOutlineColor("black");
$graph->createGraph();
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
prova una cosa del genere, se non ho capito male cioè fare un grafico di quanti tortellini, pasta e gnocchi ti hanno ordinato
PHP:
<?php
include("phpgraphlib.php");
$graph=new PHPGraphLib(1000,1000); 
$link = mysql_connect('', '', '')
   or die('Could not connect: ' . mysql_error()); 
mysql_select_db('my_partengamma') or die('Could not select database');
$dataArray=array();
//get data from database
$sql="SELECT count(pasta) as p, count(gnocchi) as g, count(tortellini) as t FROM alimenti";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if (mysql_num_rows($result)>0) {
	$row = mysql_fetch_assoc($result);
	$dataArray['pasta']=$row['p'];
	$dataArray['gnocchi']=$row['g'];
	$dataArray['tortellini']=$row['t'];
	/*l'array $dataArray dovrebbe risultarti del tipo esempio
	$dataArray =array('pasta' => 40, 'gnocchi'=>  80, 'tortellini' => 30)
	eventualmente prova con un var_dump se ti risulta fatto così
	*/
	//configure graph
	$graph->addData($dataArray);
	$graph->setTitle("Sales by Group");
	$graph->setGradient("lime", "green");
	$graph->setBarOutlineColor("black");
	$graph->createGraph();
}
?>
al massimo non funziona
 

Sargon

Utente Attivo
22 Mar 2012
45
0
0
Innanzitutto grazie ! mi sono spiegato male :-S
vorrei fare una cosa del genere... ad esempio
Pietro inserisce nel form che ha mangiato
4 tortellini
3 gnocchi
6 pasta

poi massimo
3 tortellini
3 gnocchi
1 kg di pasta

Per pietro per massimo e per altri utenti che inseriranno i dati nel form vorrei ottenere degli istogrammi separati di quanto hanno mangiato.

è possibile?

grazie ancora
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
si, però devi legare il nome del "mangiatore" alla tabella del "mangiato", quindi devi crearti una tabella dei "mangiatori" univici
nel form il "mangiatore" deve inserire anche il suo nome (univoco) poi fai la query sul nome estraendo l'id del mangiatore per cui

PHP:
$sql="SELECT count(pasta) as p, count(gnocchi) as g, count(tortellini) as t FROM alimenti WHERE id_mangiatore=$id_m";
nella tabella alimenti devi aggiungere il campo che conterrà il nome del mangiatore, il tutto, visto che si parla di alimenti, condito da un sistema di iscrizione perche, come detto, il nome (e l'id) del mangiatore deve essere univoco

riassumento
1) tabella mangiatori
id
nome
2) tabella alimenti
id
tortellini
spaghetti
gnocchi
id_mangiatore
 

Sargon

Utente Attivo
22 Mar 2012
45
0
0
variante?

Ciao

vorrei utilizzare una sola tabella non due

così è strutturata
id
nome
tortellini
pasta
gnocchi

E' possibile senza concatenazioni di vario tipo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
il problema è il campo nome che deve essere univoco, altrimenti come fa php/mysql a distinguere un mangiatore dall'altro?
sensa contare che potresti avere un mario rossi, un mario verdi, un mario bianchi... se non addrittura due ononimi mario rossi uno che mangia solo gnocchi e uno solo spaghetti