Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dilson Lopes

[Resolvido] Erro Código.

Recommended Posts

Preciso de ajuda para resolver este erro:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\xampp\almoxtr\WebPage2.php on line 25

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><!--usar charset=iso-8859-1 para codificação de caracteres tipo café -->
       <title></title>
   </head>
   <body>
       <?php
       $db = mysql_connect("localhost", "root", "");
       $bd = mysql_select_db("almox");
        $pag = isset($_GET['pag']) ? $_GET['pag'] : false; //Primeira coisa pega o valor de pag que esta na URL.
       if(isset($pag)) {//se pag tiver algum valor já nela então seta a variável  $pag.
           $pag = $pag;
       }else {//Se não receber 1.
           $pag = 1;
       }
       $quantidade = 2;//Quqntos registros por página.
       $inicio = ($pag*$quantidade) - $quantidade;//inicia de 0 a 5 de 5 a 10 a sim por diante. quando abrir a página ela tem que saber de qual registro iniciar vai de 0 a 5.
       //se for na página 2 de 5 a 10.
       $sql = mysql_query("SELECT * FROM categoria ORDER BY cat_nome LIMIT $inicio, $quantidade");//o limit vai iniciar da variável $inicio a $quantidade.
       while($linha = mysql_fetch_array($sql)) {
           $categoria = $linha["cat_nome"];
           echo "$categoria<br>";
       }
       $sql_2 = mysql_query("SELECT * FROM categoria");//Saber a quantidade de registro retonados
       $total_registros = mysql_num_rows($sql_2);//Armazena a quantidade de registros;

       $paginas = ceil($total_registros/$quantidade);//Calcula a quantidade de páginas e arredonda com a função ceil. E calcula a última página também.
       $links = 2; //limita a quantidade de páginas por paginas ou seja os links que levam a elas EX: 1234
       echo "<a href='WebPage2.php?pag=1'>Primeira página </a>  ";
       //Numeração da páginação
       for($i = $pag-$links; $i <= $pag-1; $i++) {
           if($i<=0) {//Não faz nada
           }else {
               echo "  <a href='WebPage2.php?pag=".$i."'>".$i."</a>  ";
           }
       }

       echo "<a href=#>$pag</a>";//link cego quando clicar na página na mesma página que esta sendo apresentada não levar a lugar nenhum.
       for($i = $pag+1; $i <= $pag+$links; $i++) {
           if($i>$paginas) {
           }else {//Se não faz a páginaçao.
               echo "  <a href='WebPage2.php?pag=".$i."'>".$i."</a>  ";//Pega o valor de $i e mostra.
           }
       }
       echo "  <a href='WebPage2.php?pag=".$paginas."'>Ultima página </a>  ";
       ?>
   </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua consulta SQL provavelmente não está retornando nada, faça o teste direto no banco.

de um echo no seu script SQL e teste direto no banco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua consulta SQL provavelmente não está retornando nada, faça o teste direto no banco.

de um echo no seu script SQL e teste direto no banco...

 

Obrigado pela ajuda esta dando erro no SQL tipo:

Resource id #4

e o sql e este que retornou.

SELECT * FROM categoria ORDER BY cat_nome LIMIT -2, 2

o inicio esta com sinal de -.

Você tem um sugestão por favor para resolver isto por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente

conserta essa gambiarra

        $pag = isset($_GET['pag']) ? $_GET['pag'] : false; //Primeira coisa pega o valor de pag que esta na URL. 
       if(isset($pag)) {//se pag tiver algum valor já nela então seta a variável  $pag. 
           $pag = $pag; 
       }else {//Se não receber 1. 
           $pag = 1; 
       } 

 

usa assim

 

$pag = isset($_GET['pag']) ? $_GET['pag'] : 1;

 

mude essas linhas

$sql = mysql_query("SELECT * FROM categoria ORDER BY cat_nome LIMIT $inicio, $quantidade");
$sql_2 = mysql_query("SELECT * FROM categoria");

para essas,assim vai apresentar erro se a consulta falhar

$sql = mysql_query("SELECT * FROM categoria ORDER BY cat_nome LIMIT $inicio, $quantidade")or die(mysql_error());
$sql_2 = mysql_query("SELECT * FROM categoria") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado funcionou!!!

Valeu pela ajuda!!!

primeiramente

conserta essa gambiarra

        $pag = isset($_GET['pag']) ? $_GET['pag'] : false; //Primeira coisa pega o valor de pag que esta na URL. 
       if(isset($pag)) {//se pag tiver algum valor já nela então seta a variável  $pag. 
           $pag = $pag; 
       }else {//Se não receber 1. 
           $pag = 1; 
       } 

 

usa assim

 

$pag = isset($_GET['pag']) ? $_GET['pag'] : 1;

 

mude essas linhas

$sql = mysql_query("SELECT * FROM categoria ORDER BY cat_nome LIMIT $inicio, $quantidade");
$sql_2 = mysql_query("SELECT * FROM categoria");

para essas,assim vai apresentar erro se a consulta falhar

$sql = mysql_query("SELECT * FROM categoria ORDER BY cat_nome LIMIT $inicio, $quantidade")or die(mysql_error());
$sql_2 = mysql_query("SELECT * FROM categoria") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.