Oi pessoal, tudo bem?
Estou com uma duvida, no meu exercicio está aparecendo o erro igual ao do video, o parametro conexao é nulo. Já coloquei o require_once("conecta.php") em produto-lista / adiciona-produto e mesmo assim o erro continua.
Erro Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\loja\class\ProdutoDAO.php on line 13
//classe ProdutoDAO ... <?php
class ProdutoDAO{
private $conexao;
function __constructor($conexao){ $this->conexao = $conexao; }
function listaProdutos() { $produtos = array(); $resultado = mysqli_query($this->conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id");
while($produto_atual = mysqli_fetch_assoc($resultado)) { $produto = new Produto; $categoria = new Categoria;
$categoria->setNome( $produto_atual['categoria_nome'] );
$produto->setId($produto_atual['id']); $produto->nome = $produto_atual['nome']; $produto->setPreco($produto_atual['preco']); $produto->descricao = $produto_atual['descricao']; $produto->categoria = $categoria; $produto->usado = $produto_atual['usado']; array_push($produtos, $produto); } return $produtos; }
function insereProduto(Produto $produto) { $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$produto->nome}', {$produto->getPreco()}, '{$produto->descricao}', {$produto->categoria->getId()}, {$produto->usado})"; var_dump($query); return mysqli_query($this->conexao, $query); }
function alteraProduto($produto) { $query = "update produtos set nome = '{$produto->nome}', preco = {$produto->getPreco()}, descricao = '{$produto->descricao}', categoria_id= {$produto->categoria_id}, usado = {$produto->usado} where id = '{$produto->getId()}'"; return mysqli_query($this->conexao, $query); }
function buscaProduto($id) { $query = "select * from produtos where id = {$id}"; $resultado = mysqli_query($this->conexao, $query); return mysqli_fetch_assoc($resultado); }
function removeProduto($id) { $query = "delete from produtos where id = {$id}"; return mysqli_query($this->conexao, $query); } } ...
//Classe produto lista
<?php require_once("conecta.php"); require_once("cabecalho.php"); require_once("banco-produto.php"); ?>
<?php $produtoDao = new ProdutoDAO($conexao); $produtos= $produtoDao->listaProdutos(); var_dump($produtos); foreach($produtos as $produto) : ?>
<?= $produto->nome ?> <?= $produto->getPreco() ?> <?= $produto->valorComDesconto() ?> <?= substr($produto->descricao, 0, 40) ?> <?= $produto->categoria->getNome()?> alterar remover <?php endforeach ?><?php include("rodape.php"); ?>...