guma 0 Denunciar post Postado Março 1, 2005 E ai pessoal alguem pode me ajudar a fazer uma paginação estilo ao do Google a minha paginação esta quase certo o meu problema que ela nao faz de 10 em 10. Tipo tenho 30 paginas e quero que mostre as 10 primeiras e depois quando a pessoa clica em proximo e mostre da pagina 10 a 20 e assim por diante entenderao se alguem puder me ajudar fico grato. A outra coisa quando chegar no final do numero de Paginas nao pode mais listar tipo a pessoa chegar no 30 e para ai mesmo Valeu meu codigo PHP [/tr][tr]$sql = "Select * from materias where "; $sql_res = mysql_query($sql, $conexao) or die ("Não foi possível executar a consulta."); $lpp = 30; // Especifique quantos resultados você quer por página $total = mysql_num_rows($sql_res); // Esta função irá retornar o total de linhas na tabela $paginas = ceil($total / $lpp); // Retorna o total de páginas $totalPG = ceil($total / $lpp); // Retorna o total de páginas if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada $inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL $sql = mysql_query("Select * from materiasLIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas. $row = mysql_num_rows($sql); [/tr] PHP [/tr][tr] <? if($pagina >= $totalPG) { } // SE O NUMERO CLICADO FOR ENTRE 0 ATE 10 if ($pagina < 10) { $resuB = 0; $resuA = 10; } else { $resuB = $pagina; $resuB = $resuB - 10; $resuA = $resuB; $resuA = $resuA + 10; } if ($pagina > 10){ $menos = $pagina - 10; $url = "$PHP_SELF?pagina=$menos&sessao=$sessao"; echo "<a href='$url'>Anterior</a>"; // Vai para a página anterior } for($i=$resuB;$i<=$resuA;$i++) { // Gera um loop com o link para as páginas $url = "$PHP_SELF?pagina=$i&sessao=$sessao"; echo " | <a href='$url'>$i</a>"; } if (($pagina < $totalPG) && ( $i < $totalPG)) { $mais = $pagina + 10; $url = "$PHP_SELF?pagina=$mais&sessao=$sessao"; echo " | <a href='$url'>Próxima</a>"; } ?> [/tr] Ai pessoal valeu Compartilhar este post Link para o post Compartilhar em outros sites
cassabarbosa 0 Denunciar post Postado Março 2, 2005 Algumas dicas e sugestões iniciais: 1 - no código postado, parece que a variável "$paginas" está sobrando; 2 - no SQL onde você usa o LIMIT, está faltando o parametro "$conexao", o q pode estar dando erro, sem executar o comando; 3 - sugiro não fazer uma 2a leitura do BD com o LIMIT: isso é muito oneroso (caro). você já leu o banco antes, basta fazer um loop usando um FOR, por exemplo. Ficaria +- assim: PHP [/tr][tr]$sql = "SELECT ..." $resultado = mysql_query($sql, $conexao) or die("ERRO"); // LOOP PARA MOSTRAR REGISTROS LIDOS for($i = 0; $i<mysql_num_rows($resultado); $i++) { // ....... aqui vao os comandos para cada registro do banco } [/tr] Nesse código, modifique para o nome de suas variáveis: - o valor inicial do loop ($i=0); - o valor final do loop (mysql_num_rows($resultado)). Sucesso! Compartilhar este post Link para o post Compartilhar em outros sites