wolfphw 60 Denunciar post Postado Setembro 5, 2006 Bem como eu vi tem muita gente que pega uns scripts de paginação e acabam penando numas partes... Entaum eu fiz um script bem simplificado para qualquer um poder utilizar sem problemas... Ele é dividido em 2 arquivos... um que é o arquivo onde você vai fazer a sua consulta SQL e outro é o que monta a paginação.... pagina.php <?php//######### INICIO Paginação $numreg = 40; // Quantos registros por página vai ser mostrado if (!isset($pg)) { $pg = 0; } $inicial = $pg * $numreg; //######### FIM dados Paginação // Faz o Select pegando o registro inicial até a quantidade de registros para página $sql = mysql_query("SELECT * FROM tabela LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM tabela"); $quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >> echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo while ($aux = mysql_fetch_array($sql)) { /* Ai o resto é com voces em montar como deve parecer o conteúdo */ }?> paginacao.php <style type="text/css"><!--.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}--></style><?php $quant_pg = ceil($quantreg/$numreg); $quant_pg++; // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior if ( $pg > 0) { echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."class=pg><b>« anterior</b></a>"; } else { echo "<font color=#CCCCCC>« anterior</font>"; } // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO for($i_pg=1;$i_pg<$quant_pg;$i_pg++) { // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente if ($pg == ($i_pg-1)) { echo " <span class=pgoff>[$i_pg]</span> "; } else { $i_pg2 = $i_pg-1; echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> "; } } // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima if (($pg+2) < $quant_pg) { echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>"; } else { echo "<font color=#CCCCCC>próximo »</font>"; }?> Compartilhar este post Link para o post Compartilhar em outros sites
diegoholiveira 3 Denunciar post Postado Setembro 18, 2006 Cara, otimo script, simples e eficiente.O unico problema é que se as registes_globals estiverem desligadas ele da alguns problemas, mas nada que não seja facilmente resolvido.Valeu Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Setembro 21, 2006 Pior.. eu nem tinha me ligado nisso.. mas eh coisa simples de resolver mesmo... :D/>vlw pela lembrança.. vou fazer um outro arrumando isso.. e quando terminar de arrumar eu posto aki... Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Setembro 22, 2006 Uma coisa que eu esqueci tb, quando você tiver um campo de busca por alguma coisa na página você vai ter que fazer o form que manda a busca mandar o valor via GET, e acrescentar o nome do campo e o valor na linha do link da página de paginação.... aki vai o exemplo de como ficaria se o nome do campo for busca paginacao.php <style type="text/css"><!--.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}--></style><?php $quant_pg = ceil($quantreg/$numreg); $quant_pg++; // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior if ( $pg > 0) { echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."&busca=$busca class=pg><b>« anterior</b></a>"; } else { echo "<font color=#CCCCCC>« anterior</font>"; } // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO for($i_pg=1;$i_pg<$quant_pg;$i_pg++) { // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente if ($pg == ($i_pg-1)) { echo " <span class=pgoff>[$i_pg]</span> "; } else { $i_pg2 = $i_pg-1; echo " <a href=".$PHP_SELF."?pg=$i_pg2&busca=$busca class=pg><b>$i_pg</b></a> "; } } // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima if (($pg+2) < $quant_pg) { echo "<a href=".$PHP_SELF."?pg=".($pg+1)."&busca=$busca class=pg><b>próximo »</b></a>"; } else { echo "<font color=#CCCCCC>próximo »</font>"; }?>Se notar eu acrescentei isso &busca=$busca nas seguintes linhasecho "<a href=".$PHP_SELF."?pg=".($pg-1) ."&busca=$busca class=pg><b>« anterior</b></a>"; echo " <a href=".$PHP_SELF."?pg=$i_pg2&busca=$busca class=pg><b>$i_pg</b></a> "; echo "<a href=".$PHP_SELF."?pg=".($pg+1)."&busca=$busca class=pg><b>próximo »</b></a>"; Compartilhar este post Link para o post Compartilhar em outros sites
Alan M. Diniz 1 Denunciar post Postado Novembro 14, 2006 Perfeito!valew Compartilhar este post Link para o post Compartilhar em outros sites
pensar 1 Denunciar post Postado Novembro 24, 2006 Muito bom valew Compartilhar este post Link para o post Compartilhar em outros sites
ErickX 1 Denunciar post Postado Novembro 26, 2006 cara, peguei seu codigo, fiz umas alterações... e fikou MASSA =)logico que as alterações foram mais adaptações que outra coisa... hehehe...brigadão brow por disponibilizar ele pra gente!!! =) Compartilhar este post Link para o post Compartilhar em outros sites
Microroots 0 Denunciar post Postado Dezembro 15, 2006 Bem como eu vi tem muita gente que pega uns scripts de paginação e acabam penando numas partes... Entaum eu fiz um script bem simplificado para qualquer um poder utilizar sem problemas... Ele é dividido em 2 arquivos... um que é o arquivo onde você vai fazer a sua consulta SQL e outro é o que monta a paginação.... pagina.php <?php//######### INICIO Paginação $numreg = 40; // Quantos registros por página vai ser mostrado if (!isset($pg)) { $pg = 0; } $inicial = $pg * $numreg; //######### FIM dados Paginação // Faz o Select pegando o registro inicial até a quantidade de registros para página $sql = mysql_query("SELECT * FROM tabela LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM tabela"); $quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >> echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo while ($aux = mysql_fetch_array($sql)) { /* Ai o resto é com voces em montar como deve parecer o conteúdo */ }?> paginacao.php <style type="text/css"><!--.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}--></style><?php $quant_pg = ceil($quantreg/$numreg); $quant_pg++; // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior if ( $pg > 0) { echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."class=pg><b>« anterior</b></a>"; } else { echo "<font color=#CCCCCC>« anterior</font>"; } // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO for($i_pg=1;$i_pg<$quant_pg;$i_pg++) { // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente if ($pg == ($i_pg-1)) { echo " <span class=pgoff>[$i_pg]</span> "; } else { $i_pg2 = $i_pg-1; echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> "; } } // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima if (($pg+2) < $quant_pg) { echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>"; } else { echo "<font color=#CCCCCC>próximo »</font>"; }?> Caro Wolfphw, tentei estou tentando usar o seu script mas, não está sequenciando os registros. Tipo: aparece o "anterior", o "próximo", os números, contabiliza o número de páginas pela quantidade de registros mas, quando passo o mouse em cima do numero "2", o rodape me mostra que é o número "1". Quer dizer, a página "1" ao invés de ser "1" é "0". A outra coisa é que quando clico no "próximo", ele não avança a sequencia dos meus registros. Tipo: se a primeira página é de 1 até 5, quando clico no "próximo" ou no número "2", os registros continuam sendo os cinco primeiros. Ele não avança do 6 a 10, entendeu? Pode me dizer que preciso inserir aqui? while ($aux = mysql_fetch_array($sql)) { ------> /* Ai o resto é com voces em montar como deve parecer o conteúdo */ } ?> Desculpe mas ainda tô num nível iniciante pra intermediário. Espero que possa me ajudar. Estou batendo cabeça com essa paginação. Boa noite. Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Dezembro 19, 2006 tentei estou tentando usar o seu script mas, não está sequenciando os registros. Tipo: aparece o "anterior", o "próximo", os números, contabiliza o número de páginas pela quantidade de registros mas, quando passo o mouse em cima do numero "2", o rodape me mostra que é o número "1". Quer dizer, a página "1" ao invés de ser "1" é "0".tipo ele quando você passa o mouse nos numero e no rodapé mostra outro anterior é pq o certo a numeração começa com o numero 0, dai pro visual começar aparecendo por 1 em diante eu mando na hora do visual ele mostrar o valor da página + 1.. A outra coisa é que quando clico no "próximo", ele não avança a sequencia dos meus registros. Tipo: se a primeira página é de 1 até 5, quando clico no "próximo" ou no número "2", os registros continuam sendo os cinco primeiros. Ele não avança do 6 a 10, entendeu?Esse minha paginação nao tem esse função de mostrar um bloco de página como você esta querendo, se tiver digamos 200 páginas ele vai mostrar todas. while ($aux = mysql_fetch_array($sql)) { ------> /* Ai o resto é com voces em montar como deve parecer o conteúdo */ } ?> Ai você vai fazer a amostra do seu conteúdo.. a estrutura de como ele vai aparecer dentro de tabelas, tipo esse exemplo: Compartilhar este post Link para o post Compartilhar em outros sites
CappiLevi 1 Denunciar post Postado Dezembro 31, 2006 Olha, eu não estou a conseguir fazer isto funcionar... Quando eu clico em próximo ele não vai para a próxima página, fica na mesma. Veja o link: CLIQUE AQUI Compartilhar este post Link para o post Compartilhar em outros sites
berkowitz 2 Denunciar post Postado Fevereiro 21, 2007 Fala pessoal.... firme???Eu segui o seu script, porém aqui tenho que trabalhar com SQLServer, e nele não tem o LIMIT! Como faço para paginar????Alguém pode me ajudar por favor?ABRAX! Compartilhar este post Link para o post Compartilhar em outros sites
alanrg.83 0 Denunciar post Postado Fevereiro 21, 2007 Cara me da uma força aqui!Como faço para adaptar este código da seguinte maneira!Na minha tabela nao são todas as linhas que vao ser mostradas, apenas as que no campo "assunto" tem um valor x!Como entao criar a paginação par mostar apenas uma linha de cada vez e só as linhas que no campo assunto com tem o valor x? Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Fevereiro 23, 2007 Cara me da uma força aqui!Como faço para adaptar este código da seguinte maneira!Na minha tabela nao são todas as linhas que vao ser mostradas, apenas as que no campo "assunto" tem um valor x!Como entao criar a paginação par mostar apenas uma linha de cada vez e só as linhas que no campo assunto com tem o valor x?basta você colocar o nome do campo e o valor do campo na sua consulta ao banco de dados...assim:// Faz o Select pegando o registro inicial até a quantidade de registros para página $sql = mysql_query("SELECT * FROM tabela WHERE coluna='valor' LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM tabela WHERE coluna='valor'"); Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme André 0 Denunciar post Postado Março 28, 2007 Olá pessoal! Alguem sabe uma solução para este script de paginação? Porque tipo lista tudo direitinho mais ao clicar na pagina 2 fica tudo em branco... pois eu estou ultilizando em uma pagina de pesquisa! Compartilhar este post Link para o post Compartilhar em outros sites
W i l l y 0 Denunciar post Postado Abril 23, 2007 Para resolver o problema de quem estava tendo problema em clicar em "próximo" e ele não ir para a página correspondente, mude as variáveis $pg para $_GET['pg'] em paginação.php e em página.php troque$inicial = $pg * $numregpor $inicial = $_GET['pg'] * $numreg; Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Bento 0 Denunciar post Postado Abril 25, 2007 Olá amigo eu usei o seu script so que estou tendo um problema na hora de mudar de pagina. ele aparece as seguintes paginas. ex: ID: Data: Nome: Excluir 1 23/04/2007 Video do Cutlas Jogando CS Excluir 2 23/04/2007 Video do Cutlas Jogando CS1 Excluir 3 23/04/2007 Video do Cutlas Jogando CS2 Excluir 4 23/04/2007 Video do Cutlas Jogando CS3 Excluir 5 23/04/2007 Video do Cutlas Jogando CS4 [1] 2 3 próximo » so que quando eu clico em proximo ele volta para a index do site. eu gostaria de saber se tenho que criar alguma pagina chamada pg. pois quando eu passo o mouse em cima do link aparece na barra isso http://localhost/ult/admin/index.php?pg=1 eu estou usando uma função aki para visualizar os resultados na mesma pagina. <?php $pag = $_GET['pag']; if ($pag == ""){ $pag = "menu.php";} include ($pag); ?> ai no caso o href que eu uso é assim <a href="?pag=exemplo.php"> abraços. Compartilhar este post Link para o post Compartilhar em outros sites
ARN 0 Denunciar post Postado Maio 15, 2007 Olá pessoal, sou iniciante em PHP, mas trabalho a 20 anos com programação em diversas linguagens. Gostaria de agradecer pelo script de paginação, e eu dei um jeito nele já que ele apresentou alguns problemas. Agora, pelo menos aqui está 100%, com essas modificações. Se alguém verificar alguma coisa que derrepente poderia ser solucionada mais facilmente, com outro comando porfavor me digam, como já disse sou iniciante. Obrigado a todos. ----------------------------------------------------------pag_curso.php<?php// Incluindo a conexão com o banco include('sgbd/conn.php');//######### INICIO Paginação $numreg = 10; // Quantos registros por página vai ser mostrado if (!isset($pg)) { $pg = 0; } $inicial = @$_GET['pg'] * $numreg;//######### FIM dados Paginação // Faz o Select pegando o registro inicial até a quantidade de registros para página $sql = mysql_query("select * from cursos LIMIT $inicial, $numreg"); // Serve para contar quantos registros você tem na seua tabela para fazer a paginação $sql_conta = mysql_query("SELECT * FROM cursos"); $quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação include("paginar_curso.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >> echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo while ($aux = mysql_fetch_array($sql)) { echo "<a href=" , $aux['endereco'] , ">" , $aux['descricao'], "</a>", "<br/>"; }?>----------------------------------------------------------paginar_curso.php<style type="text/css"><!--.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}--></style><?php $quant_pg = ceil($quantreg/$numreg); $quant_pg++; // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior if ( @$_GET['pg'] > 0) { echo "<a href=".$_SERVER['PHP_SELF']."?pg=".(@$_GET['pg']-1)." class=pg ><b>« Anterior</b></a>"; } else { echo "<font color=#CCCCCC>« anterior</font>"; } // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO for($i_pg=1; $i_pg<$quant_pg;$i_pg++) { // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente if (@$_GET['pg'] == ($i_pg-1)) { echo " <span class=pgoff>[$i_pg]</span> "; } else { $i_pg2 = $i_pg-1; echo " <a href=".$_SERVER['PHP_SELF']."?pg=$i_pg2 class=pg><b>$i_pg</b></a> "; } } // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima if ((@$_GET['pg']+2) < $quant_pg) { echo "<a href=".$_SERVER['PHP_SELF']."?pg=".(@$_GET['pg']+1)." class=pg ><b>próximo »</b></a>"; } else { echo "<font color=#CCCCCC>próximo »</font>"; }?> Compartilhar este post Link para o post Compartilhar em outros sites
Master.Angel 0 Denunciar post Postado Maio 20, 2007 Porque que com o include não esta funcionando.Toda vez que clico em próximo ele volta pra index.php.Na minha pagina.php eu coloquei o form e este codigo:$busca = ""; if ($_GET["busca"]!=""){ $txt_criterio = $_GET["busca"]; echo $txt_criterio;} Mas não esta fazendo a busca não.Abraços a todos. Compartilhar este post Link para o post Compartilhar em outros sites
guibean 0 Denunciar post Postado Maio 23, 2007 Parabéns pelo script Mas agora gostaria de saber como que eu limito o número de páginas que apareceram Tipo se tiver mais de 30 páginas colocar "...." entre as páginas, assim o script ficaria completo Como por exemplo Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Maio 23, 2007 Parabéns pelo script Mas agora gostaria de saber como que eu limito o número de páginas que apareceram Tipo se tiver mais de 30 páginas colocar "...." entre as páginas, assim o script ficaria completo Como por exemplo Tipo nesse seu caso você vai ter que fazer um monte de IFs para faer testes.... eu jah pensei em fazer algo dessa forma.. mas naum mexi nada ainda sobre isso... Compartilhar este post Link para o post Compartilhar em outros sites