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

Erro ao Listar

boa tarde,

ao executar a pagina com o código produto-lista.php a mensagem abaixo é exibida. Oque pode está ocorrendo?

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\loja\produto-lista.php on line 3

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\loja\produto-lista.php on line 5

13 respostas

Opa Lucas, pode postar seu código aqui? O erro indica que certas variáveis que precisam estar preenchidas não estão, mas só vendo o código para acertarmos.

olá Alberto, segue o código do produto-lista.php:

<?php include ("cabecalho.php"); ?>
<?php include ("conecta.php"); 
$resultado = mysqli_query ($conexao, "select * from produtos");
while($produto = mysqli_fetch_assoc ($resultado)){
    echo $produto ['nome'] . "<br/>";
}

?>



<?php include("rodape.php"); ?>

Opa Lucas, acho que a variável $conexao não está definida. Pode verificar?

Alberto, criei um arquivo conecta.php , acredito que esteja declarada abaixo:

<?php
$conexao = mysqli_connect("localhost", "root", "", "loja");

está faltando alguma variável?

Oi Lucas, parece que o código está certo sim. Confere para mim se a variável $conexao está preenchida? Depois, a mesma coisa vale para a variável $resultado.

Alberto, não encontrei a variável $conexão declarada em outro ponto do código, apenas no arquivo acima, já a variável $resultado está apenas no código banco-produto.php:

$resultado = mysqli_query ($conexão, "select * from produtos");

existe outro arquivo que essas variáveis devem estar declaradas?

Lucas, só para desencargo de consciência... o seu arquivo cabecalho.php tenta usar a conexão? Repare que o arquivo conexao.php só é adicionado após o cabecalho.php

Abraços,

Bons estudos.

Outro detalhe

$resultado = mysqli_query ($conexão, "select * from produtos");

Repare que variáveis não devem ter acentos no nome. Você está tentando acessar a variável conexão e não a variável conexao.

Abraços.

olá Renan, a variável está correta: $conexao, eu que escrevi ela errada aqui, respondendo a outra pergunta, pe que percebi o arquivo cobecalho.php não está utilizando esta variável, segue o código abaixo:

<html>
    <head>
        <title>Minha loja</title>
<meta charset="utf-8">
        <link href="css/bootstrap.css" rel="stylesheet">
        <link href="css/loja.css" rel="stylesheet">
    </head>
    <body>

        <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">


                    </div>
            </div>
            <ul class="nav navbar-nav">
            <li><a href="produto-formulario.php">Adiciona Produto</a></li>
                <li><a href="sobre.php">Sobre</a></li>
                <li><a href="produto-lista.php">Lista de Produtos</a></li>
                <li><a href="index.php">Minha Loja</a></li>

            </ul>
        </div>

        <div class="container">
            <div class="principal">

Troca todos os includes para require e me fala se aconteceu algum erro.

Abraços.

Renan, desculpe a demora, realizei a alteração em todos os documento, porem outro erro ocorreu.

<?php require ("cabecalho.php");
php require ("conecta.php"); 
php require ("banco-produto.php"); 
?>

<table class="table table-striped table-bordered">
    <?php
    $produtos = listaProdutos($conexao);
foreach ($produtos as $produto) :
?>
<tr>
    <td><?= $produto ['nome'] ?></td>
    <td><?= $produto['preco']?></td>
</tr>
<?php
endforeach
?>
</table>

<?php require ("rodape.php"); ?>


Erro abaixo:


Parse error: syntax error, unexpected 'require' (T_REQUIRE) in C:\xampp\htdocs\loja\produto-lista.php on line 2
solução!

Oi Lucas,

Como você está fazendo tudo na mesma diretiva php você só precisa dela na primeira linha.

Troque de:

<?php require ("cabecalho.php");
php require ("conecta.php"); 
php require ("banco-produto.php"); 
?>

para:

<?php require ("cabecalho.php");
require ("conecta.php"); 
require ("banco-produto.php"); 
?>

Abraço!

obrigado, Joviane. Funcionou lindamente!