How to create graphics in pChart with Object-oriented Connection?

Asked

Viewed 375 times

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?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.