Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

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

Já mudei todo o meu código e deixei igual ao da Alura e ainda sim apresenta o erro.
Como posso resolver este caso?


```<?php include("cabecalho.php"); ?>
<?php include("conecta.php"); 

function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "select * from produtos");
    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }

    return $produtos;
}

function insereProduto($conexao, $nome, $preco) {
    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
    return mysqli_query($conexao, $query);
}
2 respostas

Oi Otaviano, tudo bom?

Pelo seu erro

mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given

Parece que nessa linha:

while($produto = mysqli_fetch_assoc($resultado)) {...}

o $resultado veio boolean.

Isso acontece porque a função mysqli_query devolve um resultado ou false, quando da algum erro.

Tenta verificar se a conexão está sendo passada corretamente:

function listaProdutos($conexao) {
var_dump($conexao);die();

Se a conexão estiver lá certinho, verifica qual erro está sendo retornado pela função mysqli_query:

$resultado = mysqli_query($conexao, "select * from produtos");
var_dump(mysqli_error($conexao));
die();

Qualquer problema, compartilha aqui com a gente =)

Abraço

solução!

André, tudo certo, e por ai???

Consegui arrumar... O espertão aqui nomeou a tabela como Produto e não ProdutoS como está sendo chamado no código auahuah

Obrigado pela atenção!