Ir para conteúdo
Fórum Script Brasil
  • 0

Erro em PHP


Otaner

Pergunta

Caros amigos.

Estou com o seguinte erro, que está me deixando doido e não consigo resolver.

O erro é esse abaixo:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\imobil\funcoes.php on line 350

Tentei de todas as formas (meus conhecimentos) resolver, mas não tive êxito.

Abaixo estou postando o meu código para paginar:

<!--Função para Paginar -->
<?php function paginator(){
    
    include"Connections/config.php"; //Faz conexão com o banco de dados

    $imovelStatus = 'pendente';
        
    //Paginação da página
    $pag = "$_GET[pag]";
    if($pag >= '1'){
     $pag = $pag;
     } else {
       $pag = '1';
    }

    $maximo = '5'; //RESULTADOS POR PÁGINA
    $inicio = ($pag * $maximo) - $maximo;

   $dataVal = date('Y-m-d H:m:s');
   $sql = 'SELECT * FROM imoveis WHERE imovelStatus = :imovelStatus ORDER BY imovelTermino >= :dataVal ASC LIMIT '.$inicio.','.$maximo;

    try{
      $query = $conecta->prepare($sql);
      $query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
      $query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
      $query->execute();
      
      $resultado = $query->fetchAll(PDO::FETCH_ASSOC);
      
      }catch(PDOexception $error){
         echo 'Erro ao selecionar pendentes';
      }

       $sql_res = mysql_query("SELECT * FROM imoveis WHERE imovelStatus = 'pendente' ORDER BY imovelTemino ASC");
       $total = mysql_num_rows($sql_res);  //Erro ocorre aqui - linha 350.

        $paginas = ceil($total/$maximo);
        $links = '3'; //QUANTIDADE DE LINKS NO PAGINATOR

        echo "<a href=\"index.php?pg=filtro&amp;pag=1\">Primeira Página</a>&nbsp;&nbsp;&nbsp;";

        for ($i = $pag-$links; $i <= $pag-1; $i++){
          if ($i <= 0){
          }else{
           echo"<a href=\"index.php?pg=filtro&amp;pag=$i\">$i</a>&nbsp;&nbsp;&nbsp;";
          }
        } echo "$pag &nbsp;&nbsp;&nbsp;";

        for($i = $pag +1; $i <= $pag+$links; $i++){
          if($i > $paginas){
          }else{
           echo "<a href=\"index.php?pg=filtro&amp;pag=$i\">$i</a>&nbsp;&nbsp;&nbsp;";
          }
        }
        echo "<a href=\"index.php?pg=filtro&amp;pag=$paginas\">Última página</a>&nbsp;&nbsp;&nbsp;";
  }

A conexão com o Banco está assim:

<?php

    define('HOST','localhost');
    define('DB','imobil');
    define('USER','root');
    define('PASS','');            

    $conexao = 'mysql:host='.HOST.'; dbname='.DB;

    try{
         $conecta = new PDO($conexao, USER, PASS);
         $conecta->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

       } catch(PDOexception $error_conecta) {
          echo htmlentities('Erro ao conectar'.$error_conecta->getMessage());
       }

?>

Por favor, como corrijo este erro ?

Grato,

Renato

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Esse erro costuma ocorrer quando a consulta devolve um result set vazio ou falha por algum outro motivo.

Tenta testa a consulta que estás a atribuir à variável $sql_res directamente no MySQL (ou phpMyAdmin, se tiveres acesso a algum dos dois) para confirmar.

Link para o comentário
Compartilhar em outros sites

  • 0

Se fizeres debug ao programa, confirma se a variável $sql_res não está a false após a execução da consulta. Se estiver, experimenta executar a consulta directamente no phpMyAdmin (se tiveres acesso a tal) e vê se devolve o que estás a espera. Esse erro ocorre quando a variável "resultado" devia ser populada com um result set mas por algum motivo a consulta falha.

Link para o comentário
Compartilhar em outros sites

  • 0

Caros amigos

Consegui resolver uma parte do meu problema.

Troquei essa linha:

$sql_res = mysql_query("SELECT * FROM imoveis WHERE imovelStatus = 'pendente' ORDER BY imovelTemino ASC");
$total = mysql_num_rows($sql_res);

Por essa e deu certo:

//Conexão com o Banco de Dados - para função paginar

$con = mysql_connect("localhost", "root", "");
mysql_select_db("imobil", $con);
$sql_res = mysql_query("SELECT * FROM imoveis WHERE imovelStatus = 'pendente' ORDER BY imovelTermino ASC") or die(mysql_error());
$total = mysql_num_rows($sql_res);
Agora estou com um problema que não mostra a quantidade de Dados na Tela, por exemplo: quero que mostre 5 dados por cada página.
Isso não faz, por que?
Abaixo postei novamente o código do Filtro e do Paginador.

<!--Função para Filtrar o Selecionar -->
<?php function get_filtro(){
	
	include"Connections/config.php";

      $tipo      = $_POST['tipo'];
      $categoria = $_POST['categoria'];
      $subCat    = $_POST['sub-cat'];
      $bairro    = $_POST['bairro'];
	  
	$dataVal = date('Y-m-d H:m:s');
	$sql = 'SELECT * FROM imoveis WHERE imovelTermino >= :dataVal AND imovelNegocio LIKE :tipo AND imovelTipo LIKE :categoria
	        AND ImovelBairro LIKE :subcat AND imovelComodos LIKE :bairro ORDER BY imovelId DESC';
	try{
		$query = $conecta->prepare($sql);
		$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
		$query->bindValue(':tipo','%'.$tipo.'%',PDO::PARAM_STR);
		$query->bindValue(':categoria','%'.$categoria.'%',PDO::PARAM_STR);
		$query->bindValue(':subcat','%'.$subCat.'%',PDO::PARAM_STR);
		$query->bindValue(':bairro','%'.$bairro.'%',PDO::PARAM_STR);
		$query->execute();
		
		$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
		
		}catch(PDOexception $error_imovels){
		  echo 'Erro ao selecionar os imoves!'; 	
		}
		
		foreach($resultado as $res){
			$imovelID    = $res['imovelId'];
			$tipo        = $res['imovelTipo'];
			$negocio     = $res['imovelNegocio'];
			$valor       = $res['imovelValor'];
			$thumb       = $res['imovelThumb'];
			$titulo      = $res['imovelTitulo'];
			$dormitorios = $res['imovelComodos'];
			$data        = $res['imovelCadastro'];

         
           echo '<tr>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$tipo.'</a></td>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><strong>'.$negocio.'</strong></a></td>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
		   echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
		   echo '</tr>';
         
		}
			
	}
	
?>


<!--Função para Paginar -->
<?php function paginator(){

    include"Connections/config.php";

    $imovelStatus = 'pendente';

    //Paginação da página
    $pag = "$_GET[pag]";
    if($pag >= '1'){
     $pag = $pag;
     } else {
       $pag = '1';
    }

    $maximo = '5'; //RESULTADOS POR PÁGINA P/ TESTE
    $inicio = ($pag * $maximo) - $maximo;

    $dataVal = date('Y-m-d H:m:s');
    $sql = 'SELECT * FROM imoveis WHERE imovelStatus = :imovelStatus ORDER BY imovelTermino >= :dataVal ASC LIMIT '.$inicio.','.$maximo;

    try{
      $query = $conecta->prepare($sql);
      $query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR);
      $query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
      $query->execute();
      
      $resultado = $query->fetchAll(PDO::FETCH_ASSOC);
      
      }catch(PDOexception $error){
         echo 'Erro ao selecionar pendentes';
      }
    

        //Conexão com o Banco de Dados - para função paginar
        $con = mysql_connect("localhost", "root", ""); 
               mysql_select_db("imobil", $con);

        $sql_res = mysql_query("SELECT * FROM imoveis WHERE imovelStatus = 'pendente' ORDER BY imovelTermino ASC") or die(mysql_error());
        $total = mysql_num_rows($sql_res);

      	$paginas = ceil($total/$maximo);
	  	$links = '4'; //QUANTIDADE DE LINKS NO PAGINATOR

		echo "<a href=\"index.php?pg=filtro&amp;pag=1\">Primeira Página</a>&nbsp;&nbsp;&nbsp;";

		for ($i = $pag-$links; $i <= $pag-1; $i++){
			if ($i <= 0){
			}else{
			 echo"<a href=\"index.php?pg=filtro&amp;pag=$i\">$i</a>&nbsp;&nbsp;&nbsp;";
			}
		} echo "$pag &nbsp;&nbsp;&nbsp;";

		for($i = $pag +1; $i <= $pag+$links; $i++){
			if($i > $paginas){
			}else{
			 echo "<a href=\"index.php?pg=filtro&amp;pag=$i\">$i</a>&nbsp;&nbsp;&nbsp;";
			}
		}
		echo "<a href=\"index.php?pg=filtro&amp;pag=$paginas\">Última página</a>&nbsp;&nbsp;&nbsp;";


  }

?>

Grato,
Renato
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...