Zaloguj | Zarejestruj | FAQ
Anonymous

Fatal error: Call to undefined method ProdutoDao::ListarProd

+ Odpowiedz

Posty: 2 Strona 1 z 1


Fatal error: Call to undefined method ProdutoDao::ListarProd

przez igor.rmarinho » Pt cze 14, 2013 5:12 pm

Boa tarde estou com esse erro
Kod: Zaznacz cały
Fatal error: Call to undefined method ProdutoDao::ListarProdutosPorId() in Z:\...\produto.class.php on line 109


Erro na função public function ListarProdutosPorId();
ao tentar:
Kod: Zaznacz cały
$v_prod = 1;
$getProdutosId = new Produto;
$getProdutosId->cod_prod = (int)$v_prod;
$getProdutosId->getProdutoId();


Que não consigo resolver tenho outras duas funções que funcionam perfeitamente mas essa não... e não estou conseguindo resolver ...

CLASS DAO
Kod: Zaznacz cały
<?php
class ProdutoDao {
// irá receber uma conexão
public $prod = null;
// construtor
public function ProdutoDao(){
//retorna a conexão com o banco de dados Utilizando o PDO
include_once('Conexao.class.php');
$this->prod = new Conexao();
}
// realiza o insert do produto
public function insert($produto){
try{
$stmt = $this->prod->prepare("INSERT INTO tb_prod (prod_nome, prod_price, prod_stock, prod_cat, prod_avaliable, prod_delivery, prod_detail)
VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bindValue(1, $produto->getNome() );
$stmt->bindValue(2, $produto->getValor() );
$stmt->bindValue(3, $produto->getQuantidade() );
$stmt->bindValue(5, $produto->getCategoria() );
$stmt->bindValue(6, $produto->getPrazoEntrega() );
$stmt->bindValue(7, $produto->getDetalheProduto() );
$stmt->execute();
// fecho a conexão
$this->prod = null;
// caso ocorra um erro, retorna o erro;
}catch ( PDOException $ex ){  echo "Erro: ".$ex->getMessage(); }
}
//Lista todos os produtos da categoria escolhida
public function ListarProdutosPorCategoria($cat_id)
{
   try
   {
      $stmt = $this->prod->query("
      SELECT * FROM tb_prod AS prod
      LEFT JOIN tb_cat AS cat_p
      ON prod.prod_cat = cat_p.id_cat
      WHERE prod.prod_cat ='$cat_id'");
      $this->prod = null;
      return $stmt;
   }
   catch ( PDOException $ex )
   {
      echo "Erro: ".$ex->getMessage();
   }
}
[b][b]public function ListarProdutosPorId()[/b]
{
   try
   {
      $stmt = $this->prod->query("
      SELECT * FROM tb_pro AS prod
      LEFT JOIN tb_cat AS cat_p
      ON prod.prod_cat = cat_p.id_cat
      WHERE prod.prod_cat =1");
      $this->prod = null;
      return $stmt;
   }
   catch ( PDOException $ex )
   {
      echo "Erro: ".$ex->getMessage();
   }
}
[/b]
//Lista todos as categorias
public function ListaCategorias($query=null){
   try
   {
      if( $query == null )
      {
         $stmt = $this->prod->query("
         SELECT * FROM tb_cat_ig");
      }
      else
      {
         $stmt = $this->prod->query($query);
      }
      $this->prod = null;
      return $stmt;
   }
   catch ( PDOException $ex )
   { 
      echo "Erro: ".$ex->getMessage();
   }
}

}
?>


Classe produto
Kod: Zaznacz cały
<?php
class Produto{
    //declaracao de variaveis publicas e privadas
    public $user;
    private $con;
    public $pass;
    public $var;
    public $val;
    private $nome;
    private $valor;
    private $quantidade;
   private $quantidade_estoque;
   private $prazo_entrega;
   private $det_prod;
    public $cat_id;
    public $cat_nome;
   public $cod_prod;
   

    // Metodo construtor setamos aqui o que queremos que ele faça ao criar o objeto
    function __construct(){
//Estou incluindo a classe DAO, que fará todas as transações com o banco de dados.
      include('ProdutoDao.class.php');

    }
    /* O metodo __set e responsavel por receber o nome da propriedade e o valor a ser atribuido, podendo atribuir ou nao*/
    function __set($var, $val){
        $this->$var = $val;
   
    }

//Estamos gerando aqui os Gets e Sets para a sua devida utilização no DAO
public function setNome( $nome ){
$this->nome = $nome;
}
public function setValor( $valor){
$this->nome = $valor;
}
public function setQuantidade( $quantidade ){
$this->nome = $quantidade;
}
public function setCategoria( $categoria ){
$this->nome = $categoria;
}
public function setQuantidadeEstoque( $quantidade_estoque ){
$this->nome = $quantidade_estoque;
}
public function setPrazoEntrega( $prazo_entrega ){
$this->nome = $prazo_entrega;
}
public function setDetalheProduto( $det_prod ){
$this->nome = $det_prod;
}
public function setCodProduto( $cod_prod ){
$this->nome = $cod_prod;
}


public function getNome(){
return $this->nome;
}
public function getValor(){
return $this->valor;
}
public function getCategoria(){
return $this->categoria;
}
public function getQuantidade(){
return $this->quantidade;
}
public function getQuantidadeEstoque(){
return $this->quantidade_estoque;

public function getPrazoEntrega(){
return $this->prazo_entrega;
}
public function getDetalheProduto(){
return $this->det_prod;
}
public function getCodProduto(){
return $this->cod_prod;
}


function setProduto()
{

$DAO = new ProdutoDao();
//realiza o insert no banco de dados passando os valores do objeto criado
   $insertProdutos = $DAO->insert($this);
   if($insertProdutos)
   {
      $resposta="Inserido com sucesso";
   }
   else
   {
      $resposta ="Erro ao inserir";
   }
   return $resposta;



function getProdutoId()
{
       
$DAO = new ProdutoDao();
//Estou chamando a funcão que criar no DAO que me retorna todos os produtos da categoria informada.

[b][i][u]$getProdutosId = $DAO->ListarProdutosPorId($this);[/u][/i][/b] //LINHA 109 ****
$indice = 0;
//este while serve para ir pegando os dados do select e enquanto existirem serem atribuidos a sua variavel e logo apos mostra-los na tela
    while($l = $getProdutosId->fetch(PDO::FETCH_ASSOC))
   {
      $indice=+1;
      $this->cod_prod = $l["cod_product"];
      $this->nome = $l["prod_name"];
      $this->valor = $l["prod_price"];
      $this->entrega = $l["prod_delivery"];
      $this->detalhe = $l["prod_detail"];
      $this->path = $l["prod_img_path"];
      echo($this->cod_prod);
      //print '<li>';
      print '<div class=\'image\'> <img src="'.$this->path.'" style="width:100px; height:100px" alt="Angry Birds" /></div>';
      print '<p><span>'.$this->nome.'</span></p>';
      print '<p>Prazo de Entrega:<span>'.$this->entrega.'</span></p>';
      print '<p>Tamanho Aproximado:<span>'.$this->detalhe.'</span></p>';
      print '<p><strong>R$ '.$this->valor.'</strong></p>';      
      print '<input type=\'hidden\' name="txtprod" value="'.$this->cod_prod.'"';
   
   }

}
function getProduto()
{
       
$DAO = new ProdutoDao();
//Estou chamando a funcão que criar no DAO que me retorna todos os produtos da categoria informada.

$getProdutos = $DAO->ListarProdutosPorCategoria($this->cat_id);
$indice = 0;
//este while serve para ir pegando os dados do select e enquanto existirem serem atribuidos a sua variavel e logo apos mostra-los na tela
    while($l = $getProdutos->fetch(PDO::FETCH_ASSOC))
   {
      $indice=+1;
      $this->cod_prod = $l["cod_product"];
      $this->nome = $l["prod_name"];
      $this->valor = $l["prod_price"];
      $this->entrega = $l["prod_delivery"];
      $this->detalhe = $l["prod_detail"];
      $this->path = $l["prod_img_path"];
      echo($this->cod_prod);
      //print '<li>';
      print '<div class=\'image\'> <img src="'.$this->path.'" style="width:100px; height:100px" alt="Angry Birds" /></div>';
      print '<p><span>'.$this->nome.'</span></p>';
      print '<p>Prazo de Entrega:<span>'.$this->entrega.'</span></p>';
      print '<p>Tamanho Aproximado:<span>'.$this->detalhe.'</span></p>';
      print '<p><strong>R$ '.$this->valor.'</strong></p>';      
      print '<input type=\'hidden\' name="txtprod" value="'.$this->cod_prod.'"';
   
   }

}
    /* funcao que criei para fazer um select na tabela categorias e retornar todas as catergorias cadastradas dentro de um combo box(select) */
function getSelect()
{

   $DAO = new ProdutoDao();
//Funcão que criar no DAO que me retorna todos as categoria cadastradas.
   $getSelect = $DAO->ListaCategorias();

   print "<label for='tb_prod_cat_ig'><td>Categoria:</td>";
   print "<td>";
    print "<select name='Categoria'>";
   
    while($l = $getSelect->fetch(PDO::FETCH_ASSOC))
   {
        $this->cat_id = $l["id_prod_cat"];
        $this->cat_nome = $l["prod_cat_name"];
        /*veja que o value do option e o cat_id e o cat_nome e apenas o que aparece para o usuario. E este cat_id que será salvo na tabela categorias no campo categoria, para podermos fazer a nossa associacao*/
        print "<option value='{$this->cat_id}'>{$this->cat_nome}</option>";
    }
        print "</select>";
        print "</label>";
    }

}


?>


Pagina PHP que chama a função.
Kod: Zaznacz cały
<?php
include('produto.class.php');

$v_prod = null;
if($_POST['opc_efetivar']) {
$v_prod = $_POST['txtprod'];
echo $v_prod;


$getProdutosId = new Produto;
$getProdutosId->cod_prod = (int)$v_prod;
$getProdutosId->getProdutoId();

}
?>
Avatar użytkownika

igor.rmarinho

  • Posty: 1
  • Dołączył(a): Pt cze 14, 2013 2:54 pm

Re: Fatal error: Call to undefined method ProdutoDao::Listar

przez XainPro » Wt cze 18, 2013 1:14 pm

static function ListarProdutosPorId()
Avatar użytkownika

XainPro

  • Posty: 3933
  • Dołączył(a): Pt lut 17, 2012 8:10 pm


+ Odpowiedz

Strona 1 z 1