Na segunda aula do primeiro módulo de php orientado a objetos, tive um problema quando vou alterar o produto na lista de produtos. Diz que o erro vem da página produtos, segue o erro..
( ! ) Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\cursoAluraPHP\bancoProdutos.php on line 43 Call Stack
Time Memory Function Location
1 0.0022 137088 {main}( ) ..\alterarProduto.php:0 2 0.0161 160832 buscaProduto( ) ..\alterarProduto.php:8 3 0.0167 161016 mysqli_fetch_assoc ( ) ..\bancoProdutos.php:43
Vi e revi a aula e não consegui solucionar, alguém pode me ajudar? Segue o código da minha página Bancoprodutos.php...
<?php
require_once("conecta.php"); require_once("classes/produto.php"); require_once("classes/categoria.php");
function listaProdutos($conexao){ $produtos = array(); $resultado = mysqli_query($conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id");
while($produto_array = mysqli_fetch_assoc($resultado)){
$produto = new Produto(); $categoria = new Categoria(); $categoria->nome = $produto_array['categoria_nome'];
$produto->nome = $produto_array['nome']; $produto->preco = $produto_array['preco']; $produto->descricao = $produto_array['descricao']; $produto->categoria = $categoria; $produto->usado = $produto_array['usado'];
array_push($produtos, $produto); } return $produtos; }
function insereProduto($conexao, Produto $produto){ $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$produto->nome}', {$produto->preco}, '{$produto->descricao}', {$produto->categoria->id}, {$produto->usado})"; return mysqli_query($conexao, $query); }
function alteraProduto($conexao, Produto $produto) { $query = "update produtos set nome= '{$produto->nome}', preco = {$produto->preco}, descricao= '{$produto->descricao}', categoria_id= {$produto->categoria->id}, usado = {$produto->usado} where id = '{$produto->id}'"; return mysqli_query($conexao, $query); }
function buscaProduto($conexao, $id) { $query = "select * from produtos where id = {$id}"; $resultado = mysqli_query($conexao, $query); $produto = mysqli_fetch_assoc($resultado); (ESTA É A LINHA 43)
return $produto; }
function removeProduto($conexao, $id) { $query = "delete from produtos where id = {$id}"; return mysqli_query($conexao, $query); }
Antes desta aula, a linha 43 tinha uma sintaxe diferente, que era essa...
function buscaProduto($conexao, $id) { $query = "select * from produtos where id = {$id}"; $resultado = mysqli_query($conexao, $query); return mysqli_fetch_assoc($resultado); }
Após a aula, baixei o arquivo pronto e atualizei, não entendi porque estava diferente no arquivo de download disponibilizado, pois até então não havíamos feito essa alteração na aula, decidi deixar como o arquivo de que baixei, porém não resolveu também. Agradeço a quem puder me ajudar.