Otaner Postado Maio 12, 2015 Denunciar Share Postado Maio 12, 2015 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&pag=1\">Primeira Página</a> "; for ($i = $pag-$links; $i <= $pag-1; $i++){ if ($i <= 0){ }else{ echo"<a href=\"index.php?pg=filtro&pag=$i\">$i</a> "; } } echo "$pag "; for($i = $pag +1; $i <= $pag+$links; $i++){ if($i > $paginas){ }else{ echo "<a href=\"index.php?pg=filtro&pag=$i\">$i</a> "; } } echo "<a href=\"index.php?pg=filtro&pag=$paginas\">Última página</a> "; } 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wootzor Postado Maio 12, 2015 Denunciar Share Postado Maio 12, 2015 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Otaner Postado Maio 13, 2015 Autor Denunciar Share Postado Maio 13, 2015 Caro amigo não entendi. Por favor, pode explicar melhor. Grato, Renato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wootzor Postado Maio 13, 2015 Denunciar Share Postado Maio 13, 2015 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Otaner Postado Maio 16, 2015 Autor Denunciar Share Postado Maio 16, 2015 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&pag=1\">Primeira Página</a> "; for ($i = $pag-$links; $i <= $pag-1; $i++){ if ($i <= 0){ }else{ echo"<a href=\"index.php?pg=filtro&pag=$i\">$i</a> "; } } echo "$pag "; for($i = $pag +1; $i <= $pag+$links; $i++){ if($i > $paginas){ }else{ echo "<a href=\"index.php?pg=filtro&pag=$i\">$i</a> "; } } echo "<a href=\"index.php?pg=filtro&pag=$paginas\">Última página</a> "; } ?> Grato, Renato Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Otaner
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:
A conexão com o Banco está assim:
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
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.