3
respostas

Alterando o produto - Mensagem de erro

Olá,

Quando clico em alterar aparece mensagem de erro:

"Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\loja\banco-produto.php on line 26"

E também não retorna com com campos preenchidos. Pode me ajudar por gentileza ?

function buscaProduto($conexao, $id) { $query = "select * from produtos where id = {$id}"; $resultado = mysqli_query($conexao, $query); return mysqli_fetch_assoc($resultado); }

3 respostas

O problema pode estar no ID que a função buscaProdutos recebe, talvez ele esteja vazio.

Faça o seguinte teste para confirmar se este é o problema:

function buscaProduto($conexao, $id) { 
$query = "select * from produtos where id = " . $id; 
echo ($query); //Apenas para testar!
$resultado = mysqli_query($conexao, $query); 
return mysqli_fetch_assoc($resultado); 

}

O problema retornado foi:

select * from produtos where id = Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\loja\banco-produto.php on line 27

Pelo print o problema está no id, ele está vindo vazio.

Uma forma de contornar o problema pode ser a seguinte:

$id = 0;
if (isset($_GET['id'])){
    $id = $_GET['id'];
}
$produto = buscaProduto($conexao, $id);

Neste exemplo, eu crio um ID com valor zero, e, se eu estiver recebendo uma variável id pela barra de endereços do navegador, eu capturo esse valor usando $_GET. Exemplo:

 http://localhost/loja/produto-altera-formulario.php?id=1

A mensagem de erro deve sumir, mas não vai retornar dados. O problema deve estar na lista de produtos, onde, você tem o link para ver os dados do produto. O ID do produto não deve estar sendo preenchido lá.

Você precisa verificar se a sua funçao de retornar produtos está trazendo o id do produto, e se você está utilizando esse valor como parâmetro para montar o link para o produto.