thescente Postado Agosto 29, 2005 Denunciar Share Postado Agosto 29, 2005 bom dia....vou listar o que esta acontecendo com minha paginação:1 - no banco tenho 16 registros mas só exibe 10;2 - na url da noticia eu passo o parametro da pagina, mas ao invés de pegar o da pagina atual ele pega o da proxima;fora esses 2 problemas o resto funciona normalmente....se alguém puder dar um help, agradeço desde já... <? if (!isset($pag)){ $pag = 0; } $inicial = $pag * 5; $sql = "select * from noticias where publicada = 'Sim' order by data desc limit $inicial,5"; $res = $db->select($sql); $num = $db->num_rows($res); $total_pag = intval($num / 5); if ($pag <> 0) { $url = $pag - 1; } if ($pag < $total_pag) { $url = $pag + 1; } for ($i=0; $i<$num; $i++){ extract($db->fetch($res)); echo '<tr>'; echo '<td valign="top" class="td_hide">'; echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'" class="link_noticias">'; echo '<b>'.DmData($data).'</b> - '.substr($titulo, 0, 36).'...</a>'; echo '</td>'; echo '</tr>'; } echo '<tr>'; echo '<td class="td_hide">'; if ($pag <> 0) { $url = $pag - 1; echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'"> Anterior </a>'; } else { echo "Anterior "; } if ($pag < $total_pag) { $url = $pag + 1; echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'"> Próxima</a>'; } else { echo "Próxima"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thiago_2002 Postado Agosto 29, 2005 Denunciar Share Postado Agosto 29, 2005 eu acho q tipo, imagine q você quer ir a página 2, intao, te´ra q exibir os dados 5 a 10 ceerto???se você poe, $inicial = 2 * 5; o resultado será 10, intao vai exibir da 10 a 15, intao coloque$inicial = $pag * 5 - 5;se a pag for 2 vai te retornar 5, e vai até o 10,se a pag for 3, vai te retornar do 10 ao 15.....acho q é isso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Santos Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 Companheiro, não é por nada não, mas se quiser um código muito bom para páginar seu BD, teste este aqui:<? //ATENÇÃO ESTE SCRIPT É PARA USO LIVRE EM QUALQUER APLICAÇÃO FOI DESENVOLVIDO COM A AJUDA DE OUTROS //SCRIPTS DE CÓDIGO ABERTO - VOCÊ PODE ALTERÁ-LO E UTILIZA-LO DA MANEIRA QUE QUIZER MAS POR FAVOR //MANTENHA OS CRÉDITOS - CASO você UTILIZE ESTE SCRIPT POR FAVOR ME ENVIE UM E-MAIL PARA ME NOTIFICAR //DO USO. ?> <style> .estilos { color: #000000; text-decoration: none} A:hover {text-decoration: underline} </style> <? function getmicrotime(){ list($sec, $usec) = explode(" ",microtime()); return ($sec + $usec); } $time_start = getmicrotime(); //##################################################################### $arquivo = "index.php"; // COLOQUE AQUI O NOME DADO A ESTE ARQUIVO //CASO você TENHA QUE UTILIZAR OUTRAS VARIÁVEIS JUNTO COM A VARIÁVEL (id) COLOQUE JUNTO EXEMPLO: "index.php?moldura=$mold&" $banco = "classifad"; // NOME DO BANCO DE DADOS $endereco = "localhost"; // ENTRE COM O ENDEREÇO DO BANCO DE DADOS $usuario = ""; // NOME DE USUÁRIO DO MYSQL $password = ""; // SENHA DO MySQL $table = "classifad"; // NOME DA TABELA A SER UTILIZADA $maxpag = 1; // MÁXIMO DE RESULTADOS POR PÁGINA $maxlnk = 10; // MÁXIMO DE LINKS POR PÁGINA if ($id == ''){$param = 0;} else { $temp = $id; $passo1 = $temp - 1; $passo2 = $passo1*$maxpag; $param = $passo2;} //##################################################################### $res = mysql_connect("$endereco", "$usuario", "$password"); $sql = "select * from $table"; $sql_01 = "select * from $table limit $param,$maxpag"; $res1 = mysql_db_query("$banco", "$sql", $res); $res2 = mysql_db_query("$banco", "$sql_01", $res); $totreg = mysql_num_rows($res1); $totreg_01 = mysql_num_rows($res2); //##################################################################### $results_tot = $totreg; $results_parc = $totreg_01; $result_div = $results_tot/$maxpag; $n_inteiro = (int)$result_div; if ($n_inteiro < $result_div) {$n_paginas = $n_inteiro + 1;} else {$n_paginas = $result_div;} $pg_atual = $param/$maxpag+1; $reg_inicial = $param + 1; $pg_anterior = $pg_atual - 1; $pg_proxima = $pg_atual + 1; $time_end = getmicrotime(); $time = $time_end - $time_start; ?> <html> <head> <title>Paginação de Resultados</title> </head> <body topmargin="0" leftmargin="0"> <table align="center" border="0" cellspacing="0" width="600"> <tr> <td bgcolor="#3366CC" width="859"> <p align="center"><font color="#FFFFFF" size="2" face="Arial">Foram encontradas <?echo $totreg;?> ocorrências em <?echo $n_paginas?> páginas de resultados - visualizando <?echo $maxpag;?> resultados por página</font></td> </tr> </table> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <?while($resultado = mysql_fetch_array($res2)) { $contador ++;?> <? // ################## COLOQUE AQUI OS RESULTADOS DA PESQUISA ######################?> <p style="word-spacing: 0; margin: 0" align="center"> <font color="#000000" size="2" face="Arial"> <?echo $resultado["title"];?><br> <?echo $resultado["poster"];?><br> <?echo $resultado["description"];?></font></p> <? // ############################ FIM DOS RESULTADOS ###############################?> <?}$reg_final = $param + $contador;?> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <p style="word-spacing: 0; margin: 0"> </p> <div align="center"> <table border="0" cellspacing="0" width="147"> <tr> <td width="63"> <p align="center"><font face="Verdana" size="2"> <?if ($id > 1) {?><a href="<?$arquivo?>?id=<?echo $pg_anterior;?>" class="estilos"><b><<anterior</font><?}?></a></td> <?if ($temp >= $maxlnk){ if ($n_paginas > $maxlnk) {$n_maxlnk = $temp + 4; $maxlnk = $n_maxlnk; $n_start = $temp - 6; $lnk_impressos = $n_start;}} while(($lnk_impressos < $n_paginas) and ($lnk_impressos < $maxlnk)) { $lnk_impressos ++;?> <center> <td width="7"> <p align="center"><font face="Verdana" size="2"> <?if ($pg_atual != $lnk_impressos){echo "<a href=\"$arquivo?id=$lnk_impressos\" class=\"estilos\">";} if ($pg_atual == $lnk_impressos){echo "<h1>$lnk_impressos<h1>";} else {echo "$lnk_impressos";}?></a></b></font></td><?}?> </font></td> </center> <td width="200"> <p align="center"><font face="Verdana" size="2"> <?if ($reg_final < $results_tot) {?><a href="<?$arquivo?>?id=<?echo $pg_proxima;?>" class="estilos"><b>Próximo>></b></font></a></td><?}?> </tr> </table> </div> <p style="word-spacing: 0; margin: 0"> </p> <div align="center"> <table border="0" cellspacing="0" width="530"> <tr> <td bgcolor="#3366CC" width="859"> <p align="right" style="word-spacing: 0; margin: 0"><font color="#FFFFFF" size="2" face="Arial">mostrando <?echo $reg_inicial;?> - <?echo $reg_final;?> sobre <?echo $totreg;?></font><font color="#FFFFFF" size="2" face="Arial"> <?$texto=printf ("A pesquisa demorou <b>%.3f</b> segundos",$time);?></font></td> </tr> </table> </div> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lemissel Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 bom dia....vou listar o que esta acontecendo com minha paginação:1 - no banco tenho 16 registros mas só exibe 10;2 - na url da noticia eu passo o parametro da pagina, mas ao invés de pegar o da pagina atual ele pega o da proxima; Cara, n entendi o n° 2 hehehe ele faz a busca como??? com um a mais no seu link?Não tem esse script na net pra poder ver como que está executando?? é bem masi fácil...Quanto ao 1, ele limita em 2 "proximos", por isso que exibe somente 10, isso???Tente passar como parãmetro diretamente pelo brownser para abrir o "terceiro" próximo, vê se funciona e vê se consegue postar o endereço do sistema pra dar uma olhadinha na execução...Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Santos Postado Agosto 30, 2005 Denunciar Share Postado Agosto 30, 2005 Olá Veterano!Olha o "1" existe aí por eu ter colocado 1; pode ser alterado!O "10" significa que serão mostradas dez páginas, assim: <Anterior 1-2-3-4-5-6-7-8-9-10 Próxima>Também poderá ser alterado!Quando ao endereço, não tenho...Ainda!Qualquer dúvida...Abração! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
thescente
bom dia....
vou listar o que esta acontecendo com minha paginação:
1 - no banco tenho 16 registros mas só exibe 10;
2 - na url da noticia eu passo o parametro da pagina, mas ao invés de pegar o da pagina atual ele pega o da proxima;
fora esses 2 problemas o resto funciona normalmente....se alguém puder dar um help, agradeço desde já...
Link para o comentário
Compartilhar em outros sites
4 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.