Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gregurs

Erro ao gerar grafico no php

Recommended Posts

gregurs

Bom dia pessoal, tenho este código para gerar um gráfico e tenho este erro

Notice: Undefined variable: volume_cat in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\teste.php on line 38 JpGraph Error: 15009 Illegal pie plot. Sum of all data is zero for Pie Plot

o meu código é este:Podem me ajudar?

<?php

include_once ("jpgraph/src/jpgraph.php");
include_once ("jpgraph/src/jpgraph_pie.php");
include_once ("jpgraph/src/jpgraph_pie3d.php");

$username = "root";
$password = "root";
$hostname = "localhost";

$dbhandle = mysql_connect("localhost","root","") or die("Could not connect to database");

$selected = mysql_select_db("bdd", $dbhandle);

$res_vendas = "Select indicador AS numero From indicador Where indicador = 'Res. Liq. das Vendas'";
$Vol_negocio = "Select indicador AS numero From indicador Where indicador = 'Volume de negócio'";
$Vres_vendas_cat = "Select indicador AS numero From indicador Where indicador = 'Res. Liq. Vendas por categoria artigo'";
$rent_vendas = "Select indicador AS numero From indicador Where indicador = 'Rentabilidade das Vendas'";
$Vol_neg_cat = "Select indicador AS numero From indicador Where indicador = 'Volume de Negócio Vendas p\Categoria de Artigos'";

$vendas = mysql_query($res_vendas);
$negocio = mysql_query($Vol_negocio);
$vendas_cat = mysql_query($Vres_vendas_cat);
$rentabilidade = mysql_query($rent_vendas);
$negocio_cat = mysql_query($Vol_neg_cat);

while($result_vend = mysql_fetch_array($vendas))
{ $resultadoliqvendas = $result_vend['numero'];
}while($result_vol_neg = mysql_fetch_array($negocio)){
$volume_neg = $result_vol_neg['numero'];
}while($result_res_cat = mysql_fetch_array($vendas_cat)){
$resultadoliqvendascat = $result_res_cat['numero'];
}while($result_rent = mysql_fetch_array($rentabilidade)){
$rentvendas = $result_rent['numero'];
}while($result_vol_cat = mysql_fetch_array($negocio_cat)){
$volume_cat = $result_vol_cat['numero'];
}
$data = array( $resultadoliqvendas, $volume_neg, $resultadoliqvendascat, $rentvendas, $volume_cat);

$graph = new PieGraph(410, 310,"auto");
$graph->SetShadow();
$graph->title->Set("Wireless Encryption Schemes in Dublin, Ireland");
$graph->title->SetFont(FF_FONT1,FS_BOLD);

$p1 = new PiePlot3D($data);  
$p1->SetSize("");
$p1->SetCenter(0.45);
$p1->SetStartAngle(300);  
$p1->SetAngle(45);
$p1->SetTheme('earth');

$p1->value->SetFont(FF_FONT1,FS_BOLD);
$p1->SetLabelType(PIE_VALUE_PER);  

$legends = array('None','WEP','WPA');

$p1->SetLegends($legends);



$a = array_search(max($data),$data); //Find the position of  maixum value.
$p1->ExplodeSlice($a);

$graph->Add($p1);
$graph->Stroke();

?>

Edited by yoda

Share this post


Link to post
Share on other sites
brunoais

Aonde é que está a linha 38?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
HappyHippyHippo

Bom dia pessoal, tenho este código para gerar um gráfico e tenho este erro

não é um erro, é simplesmente um notice ...

Aonde é que está a linha 38?

uma pesquisa pela palavra que dá o Notice (volume_cat) dá para perceber que o problema só pode ser numa linha :

while($result_vol_cat = mysql_fetch_array($negocio_cat)){
 $volume_cat = $result_vol_cat['numero'];
}

// linha seguinte dá o notice
$data = array( $resultadoliqvendas, $volume_neg, $resultadoliqvendascat, $rentvendas, $volume_cat);

se dá notice na linha apresentada é porque o ciclo anterior nunca foi executado.

verifica se o query foi bem executado e/ou a sua execução retornou, pelo menos, um registo


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
gregurs

Agora dá me estes erros(linhas dos while) acho que ele está a ir buscar o id da linha e não o indicador

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\testar.php on line 28

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\testar.php on line 33

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\testar.php on line 37

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\testar.php on line 41

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Hugo\Ambiente de trabalho\xampp-win32-1.8.1-VC9\htdocs\site\testar.php on line 45

Edited by gregurs

Share this post


Link to post
Share on other sites
HappyHippyHippo

falhou todos os querys ???

verifica se tens a ligação à base de dados a ser feita correctamente


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
brunoais

verifica se tens a ligação à base de dados a ser feita correctamente

Mm assim, de qq modo, mostra o erro usando a função para esse efeito e livra-te das funções mysql_* usa o mysqli ou o PDO.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
t0ze

OFF TOPIC:

Se no meu código substituir todos os mysql_fetch_array, mysql_query... por mysqli_query, mysqli_fecth ...

não vão haver erros?

Mm assim, de qq modo, mostra o erro usando a função para esse efeito e livra-te das funções mysql_* usa o mysqli ou o PDO.
Edited by t0ze

Share this post


Link to post
Share on other sites
HappyHippyHippo

OFF TOPIC:

Se no meu código substituir todos os mysql_fetch_array, mysql_query... por mysqli_query, mysqli_fecth ...

não vão haver erros?

a conversão não é directa ... mas não deixa de ser semelhante

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
gregurs

Boas mudei de libraria em vez do jpgraph utilizei a phpgraphlib tenho agora este código não dá erro aparece a img no canto superior esquerdo do browser não o gráfico

<?php
include("graph\phpgraphlib.php");
// include("graph\phpgraphlib_pie.php");

$graph=new PHPGraphLib(550,350);

$link = mysql_connect('localhost', 'username', 'password')
  or die('Could not connect: ' . mysql_error());

mysql_select_db('bscfin') or die('Could not select database');

$dataArray=array();

//get data from database
$sql="SELECT ano, resultado AS 'count' FROM valores GROUP BY ano";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if ($result) {
 while ($row = mysql_fetch_assoc($result)) {
  $dated=$row['ano'];
//  $dated = strtoint($dated)
 // $count=$row["count"];
  //add to data areray
  $dataArray[$dated] = $row['resultado'];


 }
}

//configure graph
$graph->addData($dataArray);
$graph->setTitle("Resultados das vendas");
$graph->setGradient("lime", "green");
$graph->setBarOutlineColor("black");
$graph->createGraph();
?>

<html>
<h3>This is where I want to display my graph</h3>
<img src="tt.php" />
</html>

Edited by yoda

Share this post


Link to post
Share on other sites
brunoais

Já agora:

Usa mysqli ou o PDO, não uses as funções mysql_*.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.