Pesquisar na Comunidade
Mostrando resultados para as tags ''PHP OO | e-commerce''.
Encontrado 1 registro
-
Olá galera, estou precisando da ajuda dos amigos. Estou criando através de vídeo aulas um Painel Admin. de e-commerce. Segui passo a passo as orientações das aulas, porém quando tento cadastrar qualquer produto vem a seguinte mensagem abaixo: Fatal error: Call to a member function inserir() on a non-object in /home/sljvirtu/public_html/painel/admin/produto-add-ok.php on line 31 Já tentei de varias formas resolver o problema, mas como sou iniciante em PHP, estou enviando os códigos das paginas para que os amigos possam dar uma verificada e quem sabe resolver este pepino para que eu possa dar continuidade na construção do Painel. Abaixo Código da Pagina.class.php (Pag. que comanda todas as funções das outras) <?php include_once 'BD.class.php'; class Produto { private $codigo; private $titulo; private $preço; private $codmarca; private $descricao; private $destaque; private $codcategoria; private $imagem; private $quant; private $nomecategoria; private $nomemarca; //variaveis internas private $bd; //conexão com o banco private $tabela; //nome da tabela public function __construct() { $this->bd = new BD(); $this->tabela = "produto"; } public function __destruct() { unset($this->bd); } public function __get($key) { return $this->$key; } //método de retorno de valores do objeto public function __set($key, $value) { $this->$key = $value; } //METODOS //BANCO DE DADOS public function inserir() { $sql = "INSERT INTO $this->tabela (titulo, preço, codmarca, descricao, destaque, codcategoria, imagem, quant) values ('$this->titulo', $this->preço, $this->codmarca, '$this->descricao', '$this->destaque', $this->codcategoria, '$this->imagem', $this->quant)"; $retorno = pg_query($sql); return $retorno; } public function listar($complemento = "") { $sql = "SELECT * FROM $this->tabela ".$complemento; $resultado = pg_query($sql); $retorno = NULL; //percorre os registros while ($reg = pg_fetch_assoc($resultado)) { //transforma em objetos marca $obj = new Produto(); $obj->codigo = $reg["codigo"]; $obj->titulo = $reg["titulo"]; $obj->preço = $reg["preço]; $obj->codmarca = $reg["codmarca"]; $obj->codcategoria = $reg["codcategoria"]; $obj->descricao = $reg["descricao"]; $obj->destaque = $reg["destaque"]; $obj->imagem = $reg["imagem"]; $obj->quant = $reg["quant"]; //adiciona a variavel de retorno $retorno[] = $obj; } return $retorno; } public function listarjoin($complemento = "") { $sql = "select produto.* , categoria.nome as nomecategoria, marca.nome as nomemarca from produto inner join categoria on produto.codcategoria=categoria.codigo inner join marca on produto.codmarca=marca.codigo ".$complemento; $resultado = pg_query($sql); $retorno = NULL; //percorre os registros while ($reg = pg_fetch_assoc($resultado)) { //transforma em objetos marca $obj = new Produto(); $obj->codigo = $reg["codigo"]; $obj->titulo = $reg["titulo"]; $obj->preço = $reg["preço]; $obj->codmarca = $reg["codmarca"]; $obj->codcategoria = $reg["codcategoria"]; $obj->descricao = $reg["descricao"]; $obj->destaque = $reg["destaque"]; $obj->imagem = $reg["imagem"]; $obj->quant = $reg["quant"]; //$obj->nomecategoria = $reg["nomecategoria"]; //$obj->nomemarca = $reg["nomemarca"]; //adiciona a variavel de retorno $retorno[] = $obj; } return $retorno; } public function excluir() { $sql = "delete from $this->tabela where codigo =$this->codigo"; $retorno = pg_query($sql); return $retorno; } public function atualizar() { $retorno = false; $sql = "update $this->tabela set titulo='$this->titulo',preço='$this->preço',codmarca='$this->codmarca',descricao='$this->descricao',destaque='$this->destaque',codcategoria='$this->codcategoria',imagem='$this->imagem',quant='$this->quant' where codigo=$this->codigo"; $retorno = pg_query($sql); return $retorno; } public function retornarunico() { $sql = "Select * FROM $this->tabela where codigo=$this->codigo LIMIT 1"; $resultado = pg_query($sql); $retorno = NULL; $reg = pg_fetch_assoc($resultado); if ($reg == true) { $obj = new Produto(); $obj->codigo = $reg["codigo"]; $obj->titulo = $reg["titulo"]; $obj->preço = $reg["preço]; $obj->codmarca = $reg["codmarca"]; $obj->codcategoria = $reg["codcategoria"]; $obj->descricao = $reg["descricao"]; $obj->destaque = $reg["destaque"]; $obj->imagem = $reg["imagem"]; $obj->quant = $reg["quant"]; $retorno = $obj; } else { $retorno = null; } return $retorno; } } ?> Fim da pagina Produto.class.php Abaixo Código da Pagina produto.php (Pag. que lista todos os produtos cadastrados no BD) <?php include("cabecalho.php"); $p=new Produto(); if(isset($_POST["filtro"])) { $comp = " where titulo ILIKE '%".$_POST["filtro"]."%'"; } else { $comp = ""; } $lista=$p->listar($comp); $lista=$p->listarjoin($comp); // criar variável que é string de saída $saida=""; //percorre meus objetos if (isset($lista)) foreach($lista as $item) { if ($item->admin=='t') { $res="Sim"; } else { $res="não"; } $saida.=' <tr> <td>'.$item->codigo.'</td> <td>'.$item->titulo.'</td> <td>'.$item->nomemarca.'</td> <td>'.$item->nomecategoria.'</td> <td>'.$item->preço.'</td> <td>'.$item->destaque.'</td> <td><a href="produto-upd.php?codigo='.$item->codigo.'"> <img src="icones/edit.png" /></a> </br> <a href="produto-del.php?codigo='.$item->codigo.'"><img src="icones/delete.png" /></a> </td> </tr>'; } ?> <br/><br/> <h2>Produto </h2> <br/> <br/> <p style="width:100px;"><a href="produto-add.php"> <img src="icones/new.png" />Novo</a></p> <p> <form action="produto.php" method="post" id="formP"> <input type="text" name="filtro"/> <img src="../site/images/search.gif" onclick="document.getElementById('formP').submit();"/> </form> </p> <table class="tbllista"> <thead> <tr> <th>Código</th> <th>Título</th> <th>Marca</th> <th>Categoria</th> <th>Preço</th> <th>Destaque</th> <th>Operações</th> </tr> </thead> <tbody> <?php echo $saida;?> </tbody> </table> Fim da pagina produto.php Abaixo Código da Pagina produto-add.php (Pag. de cadastramento de produto) <?php include("cabecalho.php"); $selectcategoria=""; // buscar listagem de categoria // preencher o select com os registros $objCategoria=new Categoria(); $lista=$objCategoria->listar(); foreach ($lista as $item) { $selectcategoria.="<option value='".$item->codigo."'>".$item->nome."</option>"; } $selectmarca=""; $m=new Marca(); $lista=$m->listar(); foreach ($lista as $item) { $selectmarca.="<option value='".$item->codigo."'>".$item->nome."</option>"; } ?> <br/> <h2>Cadastro de Produto</h2> <br/> <form action="produto-add-ok.php" method="POST" enctype="multipart/form-data"> <table> <tr> <td align="right" width="25%"><label>Título:</label></td><td width="75%"><input type="text" name="titulo" required></td> </tr> <tr> <td align="right" width="25%"><label>Descrição:</label></td><td width="75%"><textarea name="descricao" required></textarea></td> </tr> <tr> <td align="right" width="25%"><label>Quantidade:</label></td><td width="75%"><input type="number" name="quant" required></td> </tr> <tr> <td align="right" width="25%"><label>Preço:</label></td><td width="75%"><input type="text" name="preço" required></td> </tr> <tr> <td align="right" width="25%"><label>Categoria:</label></td><td width="75%"> <select name="categoriaid" > <option value="">Selecione</option> <?php echo $selectcategoria ?> </select> </td> </tr> <tr> <td align="right" width="25%"><label>Marca:</label></td><td width="75%"> <select name="marcaid" required> <option value="">Selecione</option> <?php echo $selectmarca ?> </select> </td> </tr> <tr> <td align="right" width="25%"><label>Imagem:</label></td><td width="75%"> <input type="file" name="imagem" /> </td> </tr> <tr> <td align="right" width="25%"><label>Destaque:</label></td><td width="75%"> <select name="destaque" > <option value="">Selecione</option> <option value="1">Sim</option> <option value="0">Não</option> </select> </td> </tr> <tr> <td align="right" width="25%"><input type="reset" value="Limpar"</td><td width="75%"><input type="submit" name="cadastrar" value="Cadastrar"></td> </tr> </table> </form> Fim da pagina produto-add.php Abaixo Código da Pagina produto-add-ok.php (Pag. de confirmação do cadastramento de produto junto ao BD) <?php include("cabecalho.php"); $imagem=""; //Instancia a classe passando o arquivo (atributo name no form). if(isset($_FILES["imagem"])) { $dir_dest = "../upload"; $upload = new Upload($_FILES['imagem'], $dir_dest); // verifica se foi realizado corretamente o upload if ($upload->processed) { $imagem=$upload->file_dst_name; } } $p = new Produto(); $p->titulo = $_POST["titulo"]; $p->descricao = $_POST["descricao"]; $p->quant = $_POST["quant"]; $p->preço = $_POST["preço"]; $p->codcategoria= $_POST["codcategoria"]; $p->codmarca = $_POST["codmarca"]; $p->imagem = $imagem; $p->destaque = $_POST["destaque"]; $retorno->$p->inserir(); //para pegar o nome do arquivo do upload //$handle->file_dst_name //$retorno = $categoria->inserir(); if ($retorno == true) { $msg = "Registro cadastrado com sucesso."; } else { $msg = "Erro ao cadastrar."; } ?> <br/> <p class="msgok"><?php echo $msg ?></p> <a href="produto.php"> Voltar para listagem</a> Fim da pagina produto-add-ok.php Bem ai estão os códigos. Se alguém puder dar uma analisada, e me apontar onde estou errando, ficarei muito agradecido. Grande abraço a todos e fico no aguardo da respostas dos amigos. Fuuuiiiiii Murilo Cabral