gabriel_b 0 Denunciar post Postado Março 29, 2011 Estou usando um script de paginação que peguei na Internet, mas ele só funciona na primeira página. Quando vou para a segunda dá o seguinte erro: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Marinoski\produtos.php on line 55 Já pesquisei em alguns fóruns, e as soluções apresentadas não fizeram efeito! Será que poderiam me ajudar? Segue o código: ps: coloquei tudo numa página só por questão de teste mesmo. <?php include ('conexao.php'); //paginação; // Informações da query $campos_query = "*"; $id = $_GET["id"]; $final_query = "FROM produto where cod_categoria=$id"; // Maximo de registros por pagina $maximo = 8; // Declaração da pagina inicial $pagina = $_GET["pagina"]; if($pagina == "") { $pagina = "1"; } // Calculando o registro inicial $inicio = $pagina - 1; $inicio = $maximo * $inicio; // Conta os resultados no total da query $strCount = "SELECT COUNT(*) AS 'num_registros' $final_query"; $query = mysql_query($strCount); $row = mysql_fetch_array($query); $total = $row["num_registros"]; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="estilo.css"> <title></title> <div id="conteudo_prod"> <br><span class="titulos">Produtos</span> <?php $id = $_GET['id']; $sql = mysql_query("SELECT $campos_query $final_query LIMIT $inicio,$maximo"); // Exibimos os nomes dos produtos e seus repectivos valores while ($row = mysql_fetch_array($sql)) { $img=$row['imgp']; $idp=$row['cod_produto'];?> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left"> <div> <tr> <td bgcolor="#DAE0BE" width="10px"></td> <td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p> <?php echo "<img src=$img>"?><br><br> <?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?> <td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td> <td bgcolor="#FFFFFF" width="10px"></td> </tr> <tr><td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td></tr> </table> <?php } $id = $_GET["id"]; $menos = $pagina - 1; $mais = $pagina + 1; $pgs = ceil($total / $maximo); if($pgs > 1 ) { echo "<br />"; // Mostragem de pagina if($menos > 0) { echo "<a href=".$_SERVER['PHP_SELF']."?pagina=$menos&cod=$id>anterior</a> "; } // Listando as paginas for($i=1;$i <= $pgs;$i++) { if($i != $pagina) { echo " <a href=".$_SERVER['PHP_SELF']."?pagina=".($i)."&cod=$id>$i</a> | "; } else { echo " <strong>".$i."</strong> | "; } } if($mais <= $pgs) { echo " <a href=".$_SERVER['PHP_SELF']."?pagina=$mais&cod=$id>próxima</a>"; } } ?></div> </body> </html> Preciso disso urgente! Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 29, 2011 troca: $query = mysql_query($strCount); por: $query = mysql_query($strCount)or die( mysql_error() ); entenda o erro e corrija. Compartilhar este post Link para o post Compartilhar em outros sites
gabriel_b 0 Denunciar post Postado Março 29, 2011 fiz o que você sugeriu e deu a seguinte mensagem: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 Compartilhar este post Link para o post Compartilhar em outros sites
willwalker 2 Denunciar post Postado Março 30, 2011 Nossa que complicação tu fez. Paginação é simplesmente isso: SELECT * FROM tabela LIMIT 0,20 0 - Onde começa a paginação 20 - o limite de resultados. Super simples. Ai tu faz assim: $_GET['pag'] - parâmetro que tu passa para ser a página. $pag = $_GET['pag']-1*20; $lmt = 20 SELECT * FROM tabela LIMIT $pag,$lmt Olha que simples! Se a página for 1 ela será a página inicial, se for 2 será a segunda página e assim por diante! Abraços Walker Compartilhar este post Link para o post Compartilhar em outros sites
gabriel_b 0 Denunciar post Postado Março 30, 2011 Ok, fiz o que você sugeriu, mto orbigado...mas meu problema não é bem na paginação..mas sim ao passar o ID.. Meus produtos são divididos por categorias... e nessa página ai..ele pega o ID da categoria e lista os produtos somente de determinada categoria.. Não sei se deu pra entender.. O erro que da é na minha query.. segue o código novamente: <?php include ('conexao.php'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="estilo.css"> <title></title> <div id="conteudo_prod"> <br><span class="titulos">Produtos</span> <?php //Faz a consulta SQL $id=$_GET['id']; $sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' and LIMIT 0,20"); // Exibimos os nomes dos produtos e seus repectivos valores while($row = mysql_fetch_array($sql)) { $img=$row['imgp']; $idp=$row['cod_produto'];?> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left"> <div> <tr> <td bgcolor="#DAE0BE" width="10px"></td> <td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p> <?php echo "<img src=$img>"?><br><br> <?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?> <td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td> <td bgcolor="#FFFFFF" width="10px"></td> </tr> <tr><td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td></tr> </table> <?php $pag = $_GET['pag']-1*20; $lmt = 20; "SELECT * FROM produto LIMIT $pag,$lmt"; } ?> </div> </body> </html> Consegui achar a solução!!! Segue o código! <?php include ('conexao.php'); //paginação; if(isset($_GET["pag"])) $pag = $_GET["pag"]; else $pag = 1; $quanti = 8; // mude para 8 para mostrar 8 registros por página. $inicio = ($pag * $quanti) - $quanti; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="estilo.css"> <title></title> <div id="conteudo_prod"> <br><span class="titulos">Produtos</span> <?php //Faz a consulta SQL //conexão com o servidor $conexao = mysql_connect("", "", ""); $id=$_GET['id']; $sql = mysql_query("SELECT * FROM produto where cod_categoria='$id' limit $inicio, $quanti", $conexao); // Exibimos os nomes dos produtos e seus repectivos valores while($row = mysql_fetch_array($sql)) { $img=$row['imgp']; $idp=$row['cod_produto'];?> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#DAE0BE" align="left"> <div> <tr> <td bgcolor="#DAE0BE" width="10px"></td> <td width="121px"><p><span class="textos"><?php echo $row['nome'];?></span></p> <?php echo "<img src=$img>"?><br><br> <?php echo "<a href=\"detalhes.php?id=$idp\" target='conteudo'><img src='recortes/produto_bt_veja.jpg' border='0' align='right'/></a>";?> <td width="14px" align="top" valign="top"><img src="recortes/produto_canto.jpg"></td> <td bgcolor="#FFFFFF" width="10px"></td> </tr> <tr><td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td> <td bgcolor="#FFFFFF" height="20px"></td></tr> </table> <?php } ?> <div id="paginacao"> <?php // seleciona a id do produto $sql3 = "select cod_produto from produto"; $dados3 = mysql_query($sql3); $total = mysql_num_rows($dados3); //ceil arredonda pra cima $paginas = ceil($total / $quanti); //este for varre o vetor de paginas e imprime a pagina atual entre [ ] for ($i = 1; $i <= $paginas; $i++){ if($i == $pag){ echo "[$i] "; }else { echo "<a href='produtos.php?pag=$i&id=$id'>"; echo "$i </a> "; } } ?> </div> </div> </body> </html> Muito obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites