Parenti Postado Setembro 21, 2007 Denunciar Share Postado Setembro 21, 2007 Olá comunidade, estou precisando de fazer páginação disso:<? $id_cat = $_GET["id"]; $consulta = mysql_query("SELECT titulo, id_cat, id, cliques FROM piadas WHERE id_cat='$id_cat' ORDER BY titulo ASC") or die (mysql_error()); while($n = mysql_fetch_array($consulta)){ $id = $n["id"]; $titulo = $n["titulo"]; $cliques = $n["cliques"]; $id_cat = $n["id_cat"]; echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1><a href=\"piada.php?id_cat=$id_cat&id=$id\">$titulo</a> - ($cliques visualizações)</font><br>"; } ?>Eu já tentei um monte de coisas (que eu achei aqui) só que quando tento colocar no ECHO repete um monte de vezes e não página...Obrigado pela ajuda.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 21, 2007 Denunciar Share Postado Setembro 21, 2007 O alicerce da paginação é a cláusula LIMIT do MySQL, ela define quantos registros vão ser exibidos e partir de quando, por exemplo se colocar:SELECT titulo, id_cat, id, cliques FROM piadas WHERE id_cat='$id_cat' ORDER BY titulo ASC LIMIT 0, 50Serão exibidos 50 resultados... começando do número 1 indo até o 50...No caso você vai ter que trabalhar o LIMIT, o primeiro argumento (no caso o zero) vai ser variável, o segundo (no caso o 50) pode ser fixo...Para criar uma paginação você tem que entender a lógica, leia um script e ai tente aplicar, se não conseguir volte aqui... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Setembro 21, 2007 Autor Denunciar Share Postado Setembro 21, 2007 Tá Legal ESerra, consegui:<? $id_cat = $_GET["id"]; $consulta = mysql_query("SELECT titulo, id_cat, id, cliques FROM piadas WHERE id_cat=$id_cat' ORDER BY titulo ASC LIMIT 0, 50") or die (mysql_error()); while($n = mysql_fetch_array($consulta)){$id = $n["id];$titulo = $n["titulo"];$cliques = $n["cliques"];$id_cat = $n["id_cat"];echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1><a href=\"piada.php?id_cat=$id_cat&id=$id\">$titulo</a> - ($cliques visualizações)</font><br>";}?>só aparece 50 registros, porém como eu faço os links para chamar outra página com mais 50 registros...obrigago pela atenção Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 21, 2007 Denunciar Share Postado Setembro 21, 2007 Você leu o link que eu passei? É pra você aprender a lógica... tente, se não conseguir ai volte... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Setembro 22, 2007 Autor Denunciar Share Postado Setembro 22, 2007 então, ESerra eu lí, só que é muito complicado, passei a tarde inteira tentando fazer funcionar, não tem como você fazer para mim???depois posso enviar para quem fez esse script e quem sabe ele implementar na próxima atualização... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Setembro 24, 2007 Autor Denunciar Share Postado Setembro 24, 2007 ESerra , obrigado pela ajuda, consegui fazer o que eu queria.....na verdade até mais coisas: Para quem trabalha com o mfpiadas (eu troquei o nome do arquivo piada.php para contoerotico.php):No arquivo categorias.phpcontoseroticos era piadascontoerotico era piadaAntigo<? $id_cat = $_GET["id"]; $consulta = mysql_query("SELECT titulo, id_cat, id, cliques FROM contoseroticos WHERE id_cat='$id_cat' ORDER BY titulo ASC") or die (mysql_error()); while($n = mysql_fetch_array($consulta)){ $id = $n["id"]; $titulo = $n["titulo"]; $cliques = $n["cliques"]; $id_cat = $n["id_cat"]; echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1><a href=\"contoerotico.php?id_cat=$id_cat&id=$id\">$titulo</a> - ($cliques visualizações)</font><br>"; } ?> Novo <? $re = mysql_query("SELECT count(*) as total FROM contoseroticos"); $total = mysql_result($re, 0, "total"); $pagina = 0; if(isset($_GET["pagina"])) { $pagina = $_GET["pagina"]; } $limite = 20; $paginas = ceil($total / $limite); $inicio = $pagina * $limite; $sql = mysql_query("SELECT * FROM contoseroticos LIMIT $inicio, $limite"); $conta = mysql_num_rows($sql); while($n = mysql_fetch_array($sql)){ $id = $n["id"]; $titulo = $n["titulo"]; $contoerotico = $n["contoerotico"]; $str = strlen($contoerotico); $substr = substr($contoerotico, "0", "100"); $cliques = $n["cliques"]; $id_cat = $n["id_cat"]; if($str > 100){ echo "<font size=2 face=Verdana><a href=\"contoerotico.php?id_cat=$id_cat&id=$id\"><b>$titulo</b></a> - ($cliques visualizações)<br>$substr...</font><br><br>"; } else{ echo "<font size=1 face=Verdana><a href=\"contoerotico.php?id_cat=$id_cat&id=$id\">$titulo</a> - ($cliques visualizações)<br>$contoerotico</font><br><br>"; } } if($pagina > 0) { $menos = $pagina - 1; $url = $_SERVER["PHP_SELF"]."?pagina=".$menos; echo "<font size=2 face=Verdana><a href=\"$url\">Anterior</a></font>"; } for($i = 1;$i < $paginas; $i++) { $url = $_SERVER["PHP_SELF"]."?pagina=".$i; echo "<font size=2 face=Verdana> | <a href=\"$url\">$i</a></font>"; } if($pagina < $paginas) { $mais = $pagina + 1; $url = $_SERVER["PHP_SELF"]."?pagina=".$mais; echo "<font size=2 face=Verdana> | <a href=\"$url\">Próxima</a></font>"; } ?>Para ver melhor como ficou: CONTEÚDO REMOVIDOObrigado pela Ajuda...Então ESerra, a páginação acima está com problemas:Está listando todos os arquivos da tabela: contoseroticosporém eu preciso listar na categoria: Heterosexuais e só listar e paginar essa categoriacoisa que não está acontecendo.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 24, 2007 Denunciar Share Postado Setembro 24, 2007 Acontece que no seu antigo a query estava assim:SELECT titulo, id_cat, id, cliques FROM contoseroticos WHERE id_cat='$id_cat' ORDER BY titulo ASC No novo está assim: SELECT count(*) as total FROM contoseroticos SELECT * FROM contoseroticos LIMIT $inicio, $limite Você não está delimitando com a cláusula WHERE.... por exemplo o segundo teria que fica: SELECT * FROM contoseroticos WHERE id_cat='$id_cat' LIMIT $inicio, $limiteObviamente, nos links, além da página você terá que passar o $id_cat Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Parenti Postado Setembro 24, 2007 Autor Denunciar Share Postado Setembro 24, 2007 (editado) <? $re = mysql_query("SELECT count(*) as total FROM contoseroticos WHERE id_cat='$id_cat' ORDER BY titulo ASC"); $total = mysql_result($re, 0, "total"); $pagina = 0; if(isset($_GET["pagina"])) { $pagina = $_GET["pagina"]; } $limite = 20; $paginas = ceil($total / $limite); $inicio = $pagina * $limite; $sql = mysql_query("SELECT * FROM contoseroticos WHERE id_cat='$id_cat' LIMIT $inicio, $limite"); $conta = mysql_num_rows($sql); while($n = mysql_fetch_array($sql)){ $id = $n["id"]; $titulo = $n["titulo"]; $contoerotico = $n["contoerotico"]; $str = strlen($contoerotico); $substr = substr($contoerotico, "0", "100"); $cliques = $n["cliques"]; $id_cat = $n["id_cat"]; if($str > 100){ echo "<font size=2 face=Verdana><a href=\"contoerotico.php?id_cat=$id_cat&id=$id\"><b>$titulo</b></a> - ($cliques visualizações)<br>$substr...</font><br><br>"; } else{ echo "<font size=1 face=Verdana><a href=\"contoerotico.php?id_cat=$id_cat&id=$id\">$titulo</a> - ($cliques visualizações)<br>$contoerotico</font><br><br>"; } } if($pagina > 0) { $menos = $pagina - 1; $url = $_SERVER["PHP_SELF"]."?id_cat=$id_cat&pagina=".$menos; echo "<font size=2 face=Verdana><a href=\"$url\">Anterior</a></font>"; } for($i = 1;$i < $paginas; $i++) { $url = $_SERVER["PHP_SELF"]."?id_cat=$id_cat&pagina=".$i; echo "<font size=2 face=Verdana> | <a href=\"$url\">$i</a></font>"; } if($pagina < $paginas) { $mais = $pagina + 1; $url = $_SERVER["PHP_SELF"]."?id_cat=$id_cat&pagina=".$mais; echo "<font size=2 face=Verdana> | <a href=\"$url\">Próxima</a></font>"; } ?> <br> <br> <img border="0" src="imagens/botao_as_mais_clicadas.jpg"><br> <? include("../Connections/config.php"); $consulta = mysql_query("SELECT * FROM contoseroticos ORDER by cliques DESC LIMIT 0,30"); while($dados = mysql_fetch_array($consulta)){ $campo1 = $dados["titulo"]; $campo2 = $dados["contoerotico"]; $campo3 = $dados["id_cat"]; $campo4 = $dados["cliques"]; $campo5 = $dados["id"]; echo "<font size=2 face=Verdana><a href=\"contoerotico.php?id_cat=$campo3&id=$campo5\">$campo1</a></font><br>"; } ?>Então, eu já consegui achar vários erros:1º - id_cat=48&pagina=0 quando só existe uma página aparece: | Próxima (id_cat=48&pagina=1)2º - Quando eu Coloco categorias.php, não aparece nada, gostaria de poder colocar uma mensagem...3º - Para funcionar tive que iniciar id_cat=$id&pagina=0 (Existe outra forma de fazer isso?<?$consulta = mysql_query("SELECT * FROM cat ORDER BY nome ASC") or die (mysql_error());while($verifica = mysql_fetch_array($consulta)){ $id = $verifica["id"];$nome = $verifica["nome"];echo"<font face=Verdana size=2><a href=\"categorias.php?id_cat=$id&pagina=0\">$nome</a><br></font>";}?>4º - Na páginação aparece: | 1 | 2 | 3 | Próxima porém existe a página 0 (que não é listada)5º - O mesmo que o 1º errocategorias.php?id_cat=4&pagina=4 (só existe até a página 3)Se você puder dar uma olhada para corrigir os erros, eu agradeço...CONTEÚDO REMOVIDO Editado Setembro 24, 2007 por ESerra Leia as regras do fórum: "3.1 É proibido postar quaisquer tipos de materiais pornográficos" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 25, 2007 Denunciar Share Postado Setembro 25, 2007 1,4,5Quanto a parte da paginação altera isso:if(isset($_GET["pagina"])) {$pagina = $_GET["pagina"];}Para isso:$pagina = (isset($_GET["pagina"]))? $_GET["pagina"]:1;$pagina = $pagina-1;-------------------2 - Se, você, faça com if/else, se não estiver definida a categoria, mostra a mensagem, se estiver exibe o conteúde e a paginação...if(isset($_GET['id_cat'])){//Aqui exibe a msg}else{//Aqui o conteúdo e a paginação}-------------------3 - Você terá que especificar sem assim, sempre vai ter que passar o ID e a página (que quando o cara entrar vai ser a 1, só quando ele for navegando que vai ir mudando)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Parenti
Olá comunidade, estou precisando de fazer páginação disso:
Eu já tentei um monte de coisas (que eu achei aqui) só que quando tento colocar no ECHO repete um monte de vezes e não página...
Obrigado pela ajuda....
Link para o comentário
Compartilhar em outros sites
8 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.