Ir ao conteúdo

Posts recomendados

Postado

olá a todos

estou fazendo uma busca no meu BD mas me deparei com esse erro, eu usei essa mesma função antes e tá funcionando, mas nesse trecho especifico tá dando esse erro. alguém sabe o problema?

Citação

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\PagSeguro\index.php on line 116

Citação

if (mysqli_num_rows($read_produto) > '0'){

segue abaixo meu código:

<?php
  session_start();
  require 'conn.php';
?>

<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>PagSeguro</title>

    <!-- Bootstrap core CSS -->
    <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="css/shop-homepage.css" rel="stylesheet">

  </head>

  <body>

    <!-- Navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
      <div class="container">
        <a class="navbar-brand" href="#">PagSeguro</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            <li class="nav-item active">
              <a class="nav-link" href="#">Home
                <span class="sr-only">(current)</span>
              </a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">About</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Services</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Meu Carrinho</a>
            </li>
          </ul>
        </div>
      </div>
    </nav>

    <!-- Page Content -->
    <div class="container">

      <div class="row">

        <div class="col-lg-3">

          <h1 class="my-4">Categorias</h1>
          <div class="list-group">
            <?php
              $read_categoria = mysqli_query($conn, "select * from categoria order by categoria_descricao ASC");
              if(mysqli_num_rows($read_categoria) > '0'){
                foreach($read_categoria as $read_categoria_view){
                  echo '<a href="index.php?cat='.$read_categoria_view['categoria_id'].'" class="list-group-item">'.$read_categoria_view['categoria_descricao'].'</a>';
                }
              }
            ?>
          </div>

        </div>
        <!-- /.col-lg-3 -->

        <div class="col-lg-9">

          <div id="carouselExampleIndicators" class="carousel slide my-4" data-ride="carousel">
            <ol class="carousel-indicators">
              <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
              <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
              <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner" role="listbox">
              <div class="carousel-item active">
                <img class="d-block img-fluid" src="http://placehold.it/900x350" alt="First slide">
              </div>
              <div class="carousel-item">
                <img class="d-block img-fluid" src="http://placehold.it/900x350" alt="Second slide">
              </div>
              <div class="carousel-item">
                <img class="d-block img-fluid" src="http://placehold.it/900x350" alt="Third slide">
              </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
              <span class="carousel-control-prev-icon" aria-hidden="true"></span>
              <span class="sr-only">Previous</span>
            </a>
            <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
              <span class="carousel-control-next-icon" aria-hidden="true"></span>
              <span class="sr-only">Next</span>
            </a>
          </div>

          <div class="row">
            <?php
              if(isset($_GET['cat']) && $_GET['cat'] != ''){
                $id_cat = addslashes($_GET['cat']);
                $sql_categoria = "AND produto_id_categoria = '".$id_cat."'";
              }else{
                $sql_categoria = "";
              }
              $read_produto = mysqli_query($conn, "select * from produto where produto_id != '' ($sql_categoria) order by produto_descricao ASC");
              if(mysqli_num_rows($read_produto) > '0'){
                foreach($read_produto as $read_produto_view){
            ?>
            <div class="col-lg-4 col-md-6 mb-4">
              <div class="card h-100">
                <a href="#"><img class="card-img-top" src="http://placehold.it/700x400" alt=""></a>
                <div class="card-body">
                  <h4 class="card-title">
                    <a href="#"><?php echo $read_produto_view['produto_descricao'];?></a>
                  </h4>
                  <h5>R$ <?php echo number_format($read_produto_view('produto_preco'), 2,",",".");?></h5>
                  <p class="card-text"><?php echo utf8_encode($read_produto_view['produto_breve_descricao']);?></p>
                </div>
                <div class="card-footer">
                  <small class="text-muted">&#9733; &#9733; &#9733; &#9733; &#9734;</small>
                </div>
              </div>
            </div>
            <?php
                }
              }
            ?>

          </div>
          <!-- /.row -->

        </div>
        <!-- /.col-lg-9 -->

      </div>
      <!-- /.row -->

    </div>
    <!-- /.container -->

    <!-- Footer -->
    <footer class="py-5 bg-dark">
      <div class="container">
        <p class="m-0 text-center text-white">Copyright &copy; Fabio Moraes - <?php echo date('Y');?></p>
      </div>
      <!-- /.container -->
    </footer>

    <!-- Bootstrap core JavaScript -->
    <script src="vendor/jquery/jquery.min.js"></script>
    <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

  </body>

</html>

 

  • 2 semanas depois...
Postado

Então meu, eu já deparei com esse erro antes, normalmente acontece quando existe algum problema no Statement e ele retorna um bool(false);

Nos meus casos ou era porque a minha query estava com algum erro de sintaxe ou porque não haviam registros retornados;

 

essa é a sua query:

                   

 select * from produto where produto_id != '' ($sql_categoria) order by produto_descricao ASC

 

que depende de:           

    if(){

                        $sql_categoria = "AND produto_id_categoria = '".$id_cat."'";
                }else{
                       $sql_categoria = "";

 

o que você pode fazer é dar echo na query e ver se ela esta vindo nos conformes e rodar ela direto no banco para ver se ela tem retorno;

produto_id != '' ($sql_categoria) -> alguns interpretadores podem entender como texto a variável $sql_categoria, é bom você usar (".$sql_categoria.");

 

Manda um feedback quando terminar ou se você resolver;

 

Também é interessante usar: mysqli_query($conn,$query) or die(mysqli_error($conn));

Postado

Agora revendo isso é a query mesmo se liga:

 

Quando $sql_categoria estiver vazio a query vai ficar com uns parênteses: "select * from produto where produto_id != '' () order by produto_descricao ASC "  ai o mysql vai apresnetar um erro de sintaxe.

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!