1
I’m having problems creating my graph in pChart, I’m currently using an object-oriented connection and I’m able to connect to the database but, I’m not able to generate the data for the chart.
I get the following error:
The image ".. /example.mysql2.php" contains errors and cannot be displayed.
Below I’ll put the codes:
pChart:
<?php
/* Incluindo classes do pChart */
include("class/pData.class.php");
include("class/pDraw.class.php");
include("class/pImage.class.php");
include("Codb.php");
/* Criando o objeto pData */
$myData = new pData();
$connect = new connectBD();
$connect->set('bd','exemplo1');
$connect->set('host','localhost');
$connect->set('usuario','root');
$connect->set('senha','sap');
$pesq = $connect->set('sql','SELECT * FROM marca');
$connect->conectar();
$connect->selecionarDB();
$connect->executar();
/* Construindo a consulta e retornando os dados para o grafico*/
$cod=""; $bom=""; $regular=""; $ruim="";
while($row = mysql_fetch_array())
{
/* Puxando os resultados da consulta em um array*/
$cod[] = $row["cod_pesquisa"];
$bom[] = $row["bom_twitter"];
$regular[] = $row["regular_twitter"];
$ruim[] = $row["ruim_twitter"];
}
/* Salvando os dados no array pData*/
$myData->addPoints($cod,"Cod");
$myData->addPoints($bom,"Gostou");
$myData->addPoints($regular,"Indiferente");
$myData->addPoints($ruim,"Nao gostou");
//Definindo um sistema de cores das barras
$myData->loadPalette("palettes/notion.color",TRUE);
/* Colocando a coluna cod_pesquisa como eixo das abscissa*/
$myData->setAbscissa("Cod");
/* Declarando o eixo Y e dando seu nome */
$myData->setAxisName(0,"Twetts");
/*Criando um objeto pChart*/
$myPicture = new pImage(700,230,$myData);
/*Configurando o fundo da imagem*/
$myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,array("StartR"=>40,"StartG"=>40,"StartB"=>40,"EndR"=>80,"EndG"=>80,"EndB"=>80,"Alpha"=>100));
//Cabeçalho da imagem
$myPicture->drawGradientArea(0,0,700,35,DIRECTION_HORIZONTAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>0,"EndG"=>0,"EndB"=>0,"Alpha"=>220));
/* Adicionando bordas a imagem */
$myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));
/* Selecionando sistemas da fonte */
$myPicture->setFontProperties(array("R"=>255,"G"=>255,"B"=>255,"FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6));
/*Criando titulo */
$myPicture->drawText(220,25,"Analise de Sentimento - Marca",array("FontSize"=>15,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE, "R"=>255,"G"=>255,"B"=>255));
/* Definindo a área do gráfico */
$myPicture->setGraphArea(60,40,650,200);
/* Desenhando a escala */
$scaleSettings = array("GridR"=>50,"GridG"=>50,"GridB"=>50,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE);
$myPicture->drawScale($scaleSettings);
/* Escrevendo a area da legenda */
$myPicture->drawLegend(520,12,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
/* Ligando sombras */
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>5));
/* Desenhando grafico */
$settings = array("Gradient"=>TRUE,"GradientMode"=>GRADIENT_EFFECT_CAN,"DisplayPos"=>LABEL_POS_INSIDE,"DisplayValues"=>TRUE,"DisplayR"=>255,"DisplayG"=>255,"DisplayB"=>255,"DisplayShadow"=>TRUE);
$myPicture->drawBarChart($settings);
/* Fazendo a imagem ( Escolha um bom caminho para a imagem) */
$myPicture->autoOutput("example.mysql.png");
?>
Mysql connection:
<?php
/*
* Classe de conexão a banco de dados MySQL Orientado a Objetos
*
*/
class connectBD {
/*
* Declaração dos atributos da classe de conexão
*/
private $host; // Endereço do servidor do banco de dados
private $bd; // Banco de dados utilizado na conexão
private $usuario; // Usuário do banco de dados que possua acesso ao schema
private $senha; // Senha do usuário
private $sql; // Consulta a ser executada
function conectar(){
/*
* Método que conecta ao banco de dados passando
* os valores necessários para que a conexão ocorra
*/
$conexao = mysql_connect($this->host,$this->usuario,$this->senha) or die($this->mensagem(mysql_error()));
return $conexao;
}
function selecionarDB(){
/*
* Método que seleciona o banco de dados
* com que irá trabalhar
*/
$banco = mysql_select_db($this->bd) or die($this->mensagem(mysql_error()));
if($banco){
return true;
}else{
return false;
}
}
function executar(){
/*
* Método que executa uma query no banco de dados
*/
$query = mysql_query($this->sql) or die ($this->mensagem(mysql_error()));
return $query;
}
function set($propriedade,$valor){
/*
* Método criado para atribuir os valores as variáveis de conexão,
* muito melhor que criar set's para cada variável
*/
$this->$propriedade = $valor;
}
function mensagem($erro){
/*
* Função para exibir os possíveis erros
* Separamos em um método, pois este pode ser estilizado,
* sem alterar outros métodos
*/
echo $erro;
}
}
?>
I would like to know how to proceed now?