Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jhuan

PHPlot + Mysql + Busca

Recommended Posts

Senhores , boa tarde. Venho por meio deste post mais uma vez pedir a ajuda de vocês. estou fazendo um sistema para controlar os status dos computadores da minha empresa. Nesse controle tenho como cadastrar todas as atividades dos computadores (Quando os computadores trocam de usuário , quando os computadores vão para manutenção e quando eles são bloqueados). Gostaria de fazer um gráfico constando todos esses dados.

 

Eu até consegui utilizando a classe PHPlot , mas encontrei o seguinte problema: quando eu realizo a busca por alguma computador (Ex: PC1) , eu não consigo passar o valor pesquisa (o valor do input) para a classe fazer a query no mysql. abaixo segue a programação que estou utilizando:

 

<?php
require 'connection.php';
//Chamamos a class do MySQL que criamos
require_once 'mysql.class.php';
//chamamos a class phpLOT
require_once 'phplot-6.1.0/phplot.php';

// Se houve busca, continue o script:

// Salva o que foi buscado em uma variável

$maintenance = mysql_query("SELECT * FROM `pc_activities` INNER JOIN `pc`
ON pc_activities.id_pc = pc.id_pc
AND activity_type = 'MAINTENANCE' AND hostname = 'HOSTNAME'");

$change = mysql_query("SELECT * FROM `pc_activities` INNER JOIN `pc`
ON pc_activities.id_pc = pc.id_pc
AND `activity_type` = 'CHANGE USER' AND hostname = 'HOSTNAME'");

$status = mysql_query("SELECT * FROM `pc_activities` INNER JOIN `pc`
ON pc_activities.id_pc = pc.id_pc
AND `activity_type` = 'CHANGE STATUS' AND hostname = 'HOSTNAME'");

$m = mysql_num_rows($maintenance);

$c = mysql_num_rows($change);

$s = mysql_num_rows($status);

//instanciando a class php lot e mysql
$plot = new PHPlot(400,300);

//selecionando os dados da tabela para geração dos gráficos

/*
Muita atenção nessa parte, pois se não fizer dessa forma, você não vai conseguir o loop perfeito para trazer
todos os dados da tabela, deixem exatamente como está, pois o PHPLOT trabalha com VETORES.
*/

$data = array(
  array('Activities', $m, $c, $s),
);

//Aqui nos temos a propriedades da class phplot, podemos definir a cor dos textos de nosso gráfico
$plot->SetTextColor('blue');
#$plot->SetTickLabelColor('red');
//Aqui nos temos a propriedades da class phplot, podemos definir a cor do título de nosso gráfico
$plot->SetTitleColor('blue');
#$plot->SetDataLabelColor('red');
//aqui nos definimos a cor da exibição da quantidade de votos, coloquei vermelho
$plot->SetDataValueLabelColor('red');
//tipo da borda da imagem
$plot->SetImageBorderType('plain');
//Aqui os definimos qual o tipo de gráfico que nos queremos, se pizza ou barras, ou linhas etc.
$plot->SetPlotType('bars');
$plot->SetDataType('text-data');
$plot->SetDataValues($data);
// Aqui nos definimos o título do gráfico
$plot->SetTitle("PC Status");

# Turn off X tick labels and ticks because they don't apply here:
#$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');

# Make sure Y=0 is displayed:
$plot->SetPlotAreaWorld(NULL, 0);
# Y Tick marks are off, but Y Tick Increment also controls the Y grid lines:

# Turn on Y data labels:
$plot->SetYDataLabelPos('plotin');

# With Y data labels, we don't need Y ticks or their labels, so turn them off.
#$plot->SetYTickLabelPos('none');
#$plot->SetYTickPos('none');
//Gerando o gráfico
$plot->DrawGraph();
?>

O script seleciona todos os registros da tabela de atividades dos computadores que tem o nome HOSTNAME , gostaria que ele atribuisse o valor do campo de pesquisa a uma variável e depois utilizasse na query .Eu tentei inserir um $_GET['INPUT'] . mas quando eu faço isso , a imagem não aparece.

 

Alguém tem alguma sugestão ?!

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o html do input estiver no mesmo arquivo dos códigos de geração de gráficos, você deve impedir a impressão direta

do gráfico da adicionando o seguinte código nos devidos lugares do comentário:

 

// ANTES DO $plot->DrawGraph();
$plot->SetPrintImage(false);  

// DEPOIS DO $plot->DrawGraph();
echo "<img src='{$plot->EncodeImage()}' />"; 
echo '<a href="/">teste</a>';

 

Dá uma olhada no meu artigo que fiz no site da empresa em http://cgmautomacao.com.br/cms/artigos/36-internet/82-phplot.html

 

Leia o último comentário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de agradecer ao Raphael Barros pela ajuda, eu já não sabia mais o que fazer, a documentação de exemplo desse caso do PHPLot é muito ruim.

 

 

Obrigado. :worship:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.