Jpgraph e mysql
Publicado por Luiz Fernando Postingel Quirino 03/10/2007
[ Hits: 11.100 ]
Homepage: http://luizfpq.blogspot.com
Criação de gráfico baseado em leituras no db Mysql.
O exemplo de código abaixo lê o db e plota um gráfico de leituras termais.
No mysql copie o seguinte código:
CREATE TABLE temperatura (
  cod int(5) NOT NULL auto_increment,
  codmod int(5) default NULL,
  data varchar(10) default NULL,
  hora time default NULL,
  temp varchar(10) default NULL,
  PRIMARY KEY  (cod)
) TYPE=MyISAM;
Isso criará a tabela que leremos.
Depois crie o arquivo graf_temp.php com o seguinte código
<?
mysql_connect('localhost','user','senha');
mysql_select_db('leitura');
/*conectamos ao nosso banco de dados,
 e incluiremos os arquivos do jpgraph mude os atribudos dos includes de acordo com suas configurações, faça o mesmo com o mysql_connect e mysql_select_db, para que funcione perfeitamente*/
include ("./src/jpgraph.php");
include ("./src/jpgraph_line.php");
/*o while lê todas as entadas da tabela temperatura
você pode marcar quantas entradas quer ler na tabele pelo if($i == n) determinando o número de seleções
*/
$aux=mysql_query('select * from temperatura order by cod desc ');
$i=0;
             while($lin=mysql_fetch_row($aux))
               {
               $vet = $vet.','.$lin[4];
            $titx = $titx.','.$lin[3];
           $i++;
           
      if($i==12)
      {
       break;
        }
      
      }
      $vet=split(',',$vet);//cria a variavel array que de ve ser recebida pela matriz;
      $matriz=(array_reverse($vet));//inverte as posicões do vetor
      $titx=split(',',$titx);//cria a variavel array que será o título do eixo x;
      $hora=(array_reverse($titx));//inverte as posicões do vetor
      
// Para testar sem banco de dados descomente as linhas abaixo e comente todas as de conexão ao banco
//$matriz = array(2,50,10,3,11,1,6,2,50);
//$hora = array('7:10','7:11','7:00','7:01','7:02','7:03','7:04','7:05','7:06');
// CRIANDO O GRÁFICO
$grafico = new Graph(800,400);
// ESCALA AUTOMATICA 
$grafico->SetScale("textint");
//-------------------CONSTRUINDO AS LINHAS GRÁFICO---------------------//
// JOGA OS DADOS DA MATRIZ E PLOTA EM UM GRAFICO LINEAR
$line = new LinePlot($matriz);
// MOSTRA OS PONTOS (LINHAS)
$line->value->Show();
// MOSTRA COR DA LINHA
$line->value->SetColor("blue");
// SETA FONTE E ESTILO DA FONTE
$line->value->SetFont(FF_FONT1);
//----------------------------------------------------------------------------------//
// ADCIONA AS LINHAS NO GRÁFICO
$grafico->Add($line);
//-----------------------PROPRIEDADES DA IMAGEM--------------------------//
// DEFINE AS MARGENS DA IMAGEM
$grafico->img->SetMargin(40,30,30,30);
// DEFINE O TÍTULO DA IMAGEM
$grafico->title->Set("TEMPERATURA EM GRAUS CELSIUS");
// DEFINE O TÍTULO DO EIXO X
$grafico->xaxis->title->Set("Horário das leituras");
// DEFINE O TÍTULO DO EIXO Y
$grafico->yaxis->title->Set("Temperatura");
//DEFINE OS VALORES NO EIXO X
 $grafico->xaxis->SetTickLabels($hora); 
//---------------------------------------------------------------------------------//
// MOSTRANDO O GRÁFICO NO BROWSER
$grafico->Stroke();
?>
Caso você queira que o gráfico seja plotado em outra página, inclua o arquivo graf_temp.php em seu html como uma imagem da seguinte maneira
<img src="graf_temp.php">
Abraços, e bom proveito...
Transferir dados do Excel ou TXT para BD utilizando PHP
Monitoramento de Temperatura do Servidor
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)
Instalação dualboot Windows 11 e Debian 13 (7)









