Jump to content

[Resolvido] Funções em PHP


mariinho
 Share

Recommended Posts

Boa tarde!

Eu Gostaria que me ajudassem aqui numa parte do meu gráfico é o seguinte:

o meu trabalho é sobre registo de anomalias ou seja , eu gostaria de mostrar o gráfico referente as anomalias de 2013 , 2014 , 2015 etc .

A mim disseram-me que ficaria melhor fazer uma função no mysql, depois bastava apenas chamar pela função e mostrar todos as anomalias referentes ao ano de 2013 e assim sucessivamente.

Gostaria da vossa ajuda , para acabar o meu gráfico.

Continuação de uma boa tarde

Link to comment
Share on other sites

Sim Bioshock, estou a utilizar o google chart para desenhar o meu gráfico , neste momento poderias disponibilizar alguns links onde eu possa aprender melhor sobre o assunto , pois nao sei como irei fazer essa "função" tenho andado a pesquisar desde manha, e no utube nao se encontra nada em que me possa guiar.

Link to comment
Share on other sites

Penso que basta so fazer um Select no SQL .

Penso que sera isto:$query = $db->query("SELECT count(cod_registo) from registos group by MONTH(data) order by MONTH(data)");

<?php

#Incluimos a biblioteca

require("phplot.php");

#Definimos o objeto para inicar a "montagem" do gráfico

#Também delimitamos uma altura e largura do gráfico

$grafico = new PHPlot(750,600);

#Indicamos o formato de imagem a ser usado

$grafico->SetFileFormat("png");

#Indicamos o títul do gráfico e o título dos dados no eixo X e Y do mesmo

$grafico->SetTitle("Gráfico de exemplo");

$grafico->SetXTitle("Eixo X");

$grafico->SetYTitle("Eixo Y");

function getValues(){

$db = new mysqli("localhost", "root", "", "registo_anomalias");

$db->set_charset("utf8");

$query = $db->query("SELECT count(cod_registo), MONTH(data) from registos group by MONTH(data) order by MONTH(data)");

while($obj = $query->fetch_object()){

$values[] = array($obj->cod_registo, $obj->data);

}

return $values;

}

$dados = getValues();

$grafico->SetDataValues($dados);

#Exibimos o gráfico

$grafico->DrawGraph();

?>

não tou a conseguir obter o grafico

Link to comment
Share on other sites

Não consegues porque provavelmente estás a colocar o gráfico depois de ter sido enviada informação para o browser. Se estiveres a usar o xampp procura pelo ficheiro php_error e verás que terás imensas mensagens de erro sobre headers already sent. Se o código que apresentas for colocado no topo do teu ficheiro, em princípio irá funcionar.

<?php
// código do Gráfico
?>
<html>
 <head></head>
 <body></body>
</html>

No entanto, eu presumo que tu queiras colocar o gráfico dentro do body em algum lugar específico. Para obteres esse resultado o melhor será guardares o gráfico como uma imagem, exemplo:

<?php 	#Incluimos a biblioteca
require_once("phplot/phplot.php");

$data = array(
	array('2001',  60,  35,  20),
	array('2002',  65,  30,  30),
	array('2003',  70,  25,  40),
	array('2004',  72,  20,  60),
	array('2005',  75,  15,  70),
	array('2006',  77,  10,  80),
	array('2007',  80,   5,  90),
	array('2008',  85,   4,  95),
	array('2009',  90,   3,  98),
);

#Definimos o objeto para inicar a "montagem" do gráfico
#Também delimitamos uma altura e largura do gráfico
$grafico = new PHPlot(750,600);

#Indicamos o formato de imagem a ser usado
$grafico->SetFileFormat("png");

#Indicamos o títul do gráfico e o título dos dados no eixo X e Y do mesmo
$grafico->SetTitle("Gráfico de exemplo");
$grafico->SetXTitle("Eixo X");
$grafico->SetYTitle("Eixo Y");
$grafico->SetDataValues($data);
$grafico->SetIsInline(TRUE); // obrigatório para que a imagem seja gravada
$grafico->SetOutputFile("file.png");
$grafico->DrawGraph();
?>
<html>
<head></head>
<body>
	<img src="file.png"/>
</body>
</html>
Link to comment
Share on other sites

bom dia !

O que tu estás a mostrar-me ja eu cheguei a fazer. o que eu qeria fazer era atraves da minha base de dados poder mostrar todos os registos que foram feitos num determinado mes durante 1 ano

Esse Meu SQL funciona porque ja testei no phpmyadmin

queria mostra-lo através dum gráfico

function getValues(){

$db = new mysqli("localhost", "root", "", "registo_anomalias");

$db->set_charset("utf8");

$query = $db->query("SELECT count(cod_registo), MONTH(data) from registos group by MONTH(data) order by MONTH(data)");

while($obj = $query->fetch_object()){

$values[] = array($obj->cod_registo, $obj->data);

}

return $values;

}

$dados = getValues();

$grafico->SetDataValues($dados);

o erro deverá estar no while , mas nao consigo descobrir qual é o tal erro xD

Link to comment
Share on other sites

O problema está na query, não no ciclo. Por acaso não te dá erros? É que se dá convinha dizeres quais são quando crias um tópico. Dizer que não funciona não chega.

$query = $db->query("SELECT COUNT(cod_registo) AS cod_registo, MONTH(data) AS data FROM registos GROUP BY MONTH(data) ORDER BY MONTH(data)");
Link to comment
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
 Share

×
×
  • Create New...

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.