Guest - Calaça - Postado Março 3, 2004 Denunciar Share Postado Março 3, 2004 Sei que existem muitos exemplos de paginação no fórum, mas não consegui acertar nenhum, por isso peço ajuda para o seguinte script:<? include "conecta.php"; ?> <html> <head> <title>Pesquisa dos Nomes</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <br> <table width="60%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td height="60"> <div align="center"><font face="Arial" size="4"><b>Pesquisa dos Nomes</b></font></div></td> </tr> </table> <br> <form name="frm_pesq" method="post" action="<?echo $PHP_SELF?>"> <table width="75%" border="0" cellspacing="1" cellpadding="0" align="center"> <tr bgcolor="#6699CC"> <td colspan="2"> <div align="center"><font face="Arial" size="2"><b>Pesquisa</b></font></div></td> </tr> <tr bgcolor="ebebeb"> <td width="32%"><font face="Arial" size="2">Nome a ser procurado:</font></td> <td width="68%"> <font face="Arial" size="2"> <input type="text" name="pesq" size="30"> <input type="submit" value="Pesquisar >>"> <input type="hidden" name="pesquisar" value="sim"></font></td> </tr> </table> </form> <? $sql_cliente = mysql_query("SELECT * FROM tbnomes WHERE nom_nome LIKE '%$pesq%'"); $total = mysql_num_rows($sql_cliente); if ($pesquisar <> 'sim') echo "O Banco de Dados possui ".$total." nomes catalogados"; ?> <br> <? if($pesquisar == 'sim'){ $sql=mysql_query("SELECT * FROM tbnomes WHERE nom_nome LIKE '%$pesq%'"); $total=mysql_num_rows($sql); if($pagina=="") { $pagina="1"; } $maximo="10"; $inicio=$pagina-1; $inicio=$maximo*$inicio; $query=mysql_query("SELECT * FROM tbnomes WHERE nom_nome LIKE '%$pesq%'LIMIT $inicio,$maximo"); if(mysql_num_rows($sql) > 0) { if ($total >1) { echo "Foram encontrados ".$total." nomes semelhantes a ".$pesq; } Else { echo "Foi encontrado ".$total." nome semelhante a ".$pesq; } ?> <table width="95%" border="0" cellspacing="1" cellpadding="0" align="center"> <tr bgcolor="#6699CC"> <td colspan="5"> <div align="center"><font face="Arial" size="2"><b><font color="#FFFFFF">Nomes Cadastrados</font></b></font></div> </td> </tr> <tr bgcolor="cccccc"> <td width="19%"> <div align="center"><b><font face="Arial" size="2">Nome</font></b></div> </td> <td width="63%"> <div align="center"><b><font face="Arial" size="2">Significado</font></b></div> </td> <td width="23%"> <div align="center"><b><font face="Arial" size="2">Fonte</font></b></div> </td> </tr> <?while($array_cliente = mysql_fetch_array($query)) {?> <tr bgcolor="ebebeb"> <td width="19%" height="25"><font face="Arial" size="2"> <?echo $array_cliente['nom_nome'];?></font> </td> <td width="33%" height="25"><font face="Arial" size="2"> <?echo $array_cliente['nom_sign'];?></font> </td> </td> </tr> <?} /* fecha while */ ?> </table> <?}/* fecha mysql_num_rows > 0 */ else{ echo "<br><br><div align=center><font face=Arial size=2> Desculpe, mas não achei nada<br><br></font></div>"; } $menos=$pagina-1; $mais=$pagina+1; $p_ini=$mais-1; $p_ini=$maximo*$p_ini; $p_query=mysql_query("SELECT * FROM tbnomes WHERE nom_nome LIKE '%$pesq%'LIMIT $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); if($menos>0) { echo "<a href=\"?pagina=$menos\"><< Anterior</a> "; } if($p_total>0) { echo "<a href=\"?pagina=$mais\">Próxima >></a>"; } } //fecha pesquisar =="sim" ?> <br><div align=center><font face=Arial size=2> <a href='index.htm'>[ Voltar ]</a></font></div> </body> </html> Primeiro ele mostra a quantidade de registros existentes no BD e depois que se pede uma busca ele mostra, digamos, 50 registros que atendem a busca.Quaro mostrar de 10 em 10 registros mas depois que mostra a 1ª página as páginas seguites não são mostradas.O script acima, peguei no portal e adaptei mas não funcionou. Alguém pode ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@luco Belez@ Postado Março 3, 2004 Denunciar Share Postado Março 3, 2004 não olhei td o código, mas tenta mudar essa parte pra ver no q q dá:$maximo="10";$inicio=$pagina*$maximo; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuNiN-GyN Postado Março 3, 2004 Denunciar Share Postado Março 3, 2004 O problema deve tar na paginação.guenta a mão ae q vo arrumar um script de paginação bem facim pra você.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuNiN-GyN Postado Março 3, 2004 Denunciar Share Postado Março 3, 2004 ae cara da uma olhadinha nesse script aqui.<?include ("../config.php");// Nome da tabela a ter os registros paginados $tabela="NomeDaTabela"; // Maximo de registros por pagina $maximo="10"; // Total de registros $sql = mysql_query("SELECT * FROM $tabela"); $total = mysql_num_rows($sql); if ($total == "0") {echo "<script>alert(\"Não há informações disponiveis.");window.location = 'javascript:history.back(-1)';</script>";} else {echo "";}// Declaração da pagina inicial $pagina = $_GET[pagina];if($pagina=="") { $pagina="1"; } // Calculando o registro inicial $inicio=($pagina*$maximo)-$maximo; // Query no qual o script se basea $busca=mysql_query("SELECT * FROM $tabela LIMIT $inicio,$maximo");?><? while ($valor = mysql_fetch_array($busca)){ ?> . . //ae tu coloca os resultados aqui. .<? } ?>// Inicio da paginação<? $sql1 = mysql_query("Select * from $tabela");$linhas = mysql_num_rows($sql1);$paginas = ceil($linhas / $maximo); //anteriorif($pagina>1) {$anterior = $pagina - 1;echo "<a href=\"?pagina=$anterior\" style=\"color: #FF9900;\">Anterior</a> ";}?> <font color="#FFFFFF">...</font><strong><font color="#000000">" \</font><font color="#FF0000">o</font><font color="#000000">/" <font color="#FFFFFF">...</font></font></strong> <?//proximaif($pagina < ($paginas - 1)) {$proxima = $pagina + 1;echo " <a href=\"?pagina=$proxima\" style=\"color: #FF9900;\">Próxima</a>";}?> <strong>></strong>><br> <?ECHO ("| ");FOR ($valor = 1; $valor < ($paginas) + 0; $valor++) { // Abre distribue$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE;#-------------------------------------------------# Aqui ele mostrará em negrito o bloco atual!IF ($pagina=="$valor"){ECHO (" <A HREF=\"?pagina=$valor\" style=\"color: #FF0000;\"><B>[$valor]</B></A> |");} ELSE {ECHO (" <A HREF=\"?pagina=$valor\" style=\"color: #FF9900;\">$valor</A> |");}#-------------------------------------------------} // Fecha distribue?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Março 3, 2004 Denunciar Share Postado Março 3, 2004 Hum....Parte deste script eu conheço...É bem parecido a um que eu fiz. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Calaça - Postado Março 5, 2004 Denunciar Share Postado Março 5, 2004 Obrigado Galeguim, mas deu erro neste bloco:if ($total == "0") { echo "<script> alert(\"Não há informações disponiveis."); window.location = 'javascript:history.back(-1)'; </script>"; } else { echo ""; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Calaça - Postado Março 5, 2004 Denunciar Share Postado Março 5, 2004 Gladisom, desculpe este código deve ser seu mesmo. Estava disponível em algum lugar. Só que ele pagina todos os ítens do BD e só só quero alguns por isso tentei adaptá-lo mas não deu certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuNiN-GyN Postado Março 5, 2004 Denunciar Share Postado Março 5, 2004 Ops foi meu amigo nem vi esquci de colocar uma barra ae.if ($total == "0") {echo "<script>alert(\"Não há informações disponiveis.\");window.location = 'javascript:history.back(-1)';</script>";} else {echo "";}Qualquer coisa posta ae.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuNiN-GyN Postado Março 5, 2004 Denunciar Share Postado Março 5, 2004 (editado) Readaptação no codigo da paginação.descobri um erro no codigo da paginação q eu postei. ela tava dechando pra traz o ultimo resultado do banco.ae vai o codigo arrumado. em vermelho é onde foi arrumado.<?include ("../config.php");// Nome da tabela a ter os registros paginados $tabela="NomeDaTabela";// Maximo de registros por pagina $maximo="10"; // Total de registros $sql = mysql_query("SELECT * FROM $tabela"); $total = mysql_num_rows($sql);if ($total == "0") {echo "<script>alert(\"Não há informações disponiveis.\");window.location = 'javascript:history.back(-1)';</script>";} else {echo "";}// Declaração da pagina inicial $pagina = $_GET[pagina];if($pagina=="") { $pagina="1"; } // Calculando o registro inicial $inicio=($pagina*$maximo)-$maximo; // Query no qual o script se basea $busca=mysql_query("SELECT * FROM $tabela LIMIT $inicio,$maximo");?><? while ($valor = mysql_fetch_array($busca)){ ?> . . //ae tu coloca os resultados aqui. .<? } ?>// Inicio da paginação<? $sql1 = mysql_query("Select * from $tabela");$linhas = mysql_num_rows($sql1);$paginas = ceil($linhas / $maximo);//anteriorif($pagina>1) {$anterior = $pagina - 1;echo "<a href=\"?pagina=$anterior\" style=\"color: #FF9900;\">Anterior</a> ";}?> <font color="#FFFFFF">...</font><strong><font color="#000000">" \</font><font color="#FF0000">o</font><font color="#000000">/" <font color="#FFFFFF">...</font></font></strong> <?//proximaif($pagina < ($paginas)) {$proxima = $pagina + 1;echo " <a href=\"?pagina=$proxima\" style=\"color: #FF9900;\">Próxima</a>";}?> <strong>></strong>><br> <?ECHO ("| ");FOR ($valor = 1; $valor < ($paginas) + 1; $valor++) { // Abre distribue$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE;#-------------------------------------------------# Aqui ele mostrará em negrito o bloco atual!IF ($pagina=="$valor"){ECHO (" <A HREF=\"?pagina=$valor\" style=\"color: #FF0000;\"><B>[$valor]</B></A> |");} ELSE {ECHO (" <A HREF=\"?pagina=$valor\" style=\"color: #FF9900;\">$valor</A> |");}#-------------------------------------------------} // Fecha distribue?>Qualquer coisa posta ae.Abraços. Editado Março 5, 2004 por GaleguiN Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Calaça - Postado Março 9, 2004 Denunciar Share Postado Março 9, 2004 Oi pessoal!Ainda não resolvi o problema de paginação. O script acima funciona bem quando quero listar todos os dados do banco.O problema é que quando quero listar apenas alguns dados tipo, só nomes que contenham a variável $pesq, assim:$busca=mysql_query("SELECT * FROM $tabela WHERE nome LIKE '%$pesq%' LIMIT $inicio,$maximo"); Todos os scripts que testei e adaptei com a cláusula WHERE não deram certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuNiN-GyN Postado Março 10, 2004 Denunciar Share Postado Março 10, 2004 Ta dando algum erro ?!?!? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Calaça - Postado Março 10, 2004 Denunciar Share Postado Março 10, 2004 Não dá erro. Apenas não mostra as outras páginas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Calaça -
Sei que existem muitos exemplos de paginação no fórum, mas não consegui acertar nenhum, por isso peço ajuda para o seguinte script:
Primeiro ele mostra a quantidade de registros existentes no BD e depois que se pede uma busca ele mostra, digamos, 50 registros que atendem a busca.
Quaro mostrar de 10 em 10 registros mas depois que mostra a 1ª página as páginas seguites não são mostradas.
O script acima, peguei no portal e adaptei mas não funcionou. Alguém pode ajudar?
Link para o comentário
Compartilhar em outros sites
11 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.