mariinho Posted May 22, 2014 at 02:55 PM Report #556664 Posted May 22, 2014 at 02:55 PM 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
bioshock Posted May 22, 2014 at 03:04 PM Report #556666 Posted May 22, 2014 at 03:04 PM Sim, disseram-te bem. Se o teu gráfico é desenhado em Javascript, podes fazer uma chamada em jQuery que te retorna os valores da função em PHP.
mariinho Posted May 22, 2014 at 03:28 PM Author Report #556672 Posted May 22, 2014 at 03:28 PM 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.
bioshock Posted May 22, 2014 at 04:09 PM Report #556679 Posted May 22, 2014 at 04:09 PM Não sabes fazer uma query ao MySQL para retornar resultados? Ou não sabes utilizar o $.Ajax?
mariinho Posted May 22, 2014 at 08:34 PM Author Report #556722 Posted May 22, 2014 at 08:34 PM eu sei fazer uma query em mysql, mas nao sei utilizar ajax s: , algu em que me possa basear?
bioshock Posted May 22, 2014 at 08:53 PM Report #556724 Posted May 22, 2014 at 08:53 PM https://www.portugal-a-programar.pt/forums/topic/65248-countdown-relogio/
mariinho Posted May 27, 2014 at 01:40 PM Author Report #557119 Posted May 27, 2014 at 01:40 PM 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
bioshock Posted May 29, 2014 at 09:35 AM Report #557483 Posted May 29, 2014 at 09:35 AM 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>
mariinho Posted May 29, 2014 at 09:50 AM Author Report #557494 Posted May 29, 2014 at 09:50 AM 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
bioshock Posted May 29, 2014 at 09:57 AM Report #557499 Posted May 29, 2014 at 09:57 AM 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)");
mariinho Posted May 29, 2014 at 10:05 AM Author Report #557503 Posted May 29, 2014 at 10:05 AM Sim tens razão , faltava-me qualqer coisa na query muito obrigado de novo 😛 Continuação de um bom dia
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now