M@luco Belez@ Postado Novembro 7, 2003 Denunciar Share Postado Novembro 7, 2003 Olá!!Eu estava querendo um esquema de paginação, ai eu usei a busca aqui do fórum e achei um que o Gladisson postou, do tipo |1| 2 3....mas o que acontece é que se a quantidade a ser exbida por página for 2 por exemplo, ele fica assim...|0| 2 4 6se qtde for = 3|0| 3 6 9abaixo vai o código...<?PHP # # Salve como paginação.php # # Para teste acesse: # # http:/localhost/paginacao.php?BLOCO=0&QUANTIDADE=10&RESULTADO_TOTAL=30 # # Ai é só mudando os valores e veja! Agora é só adptar com as variaveis do script # # #--------------------------------------------------------------------------------- # Em SELECT coloque no LIMIT $BLOCO,$QUANTIDADE //******************************************************** // Caso $BLOCO não tenha outro valor seu valor será 0. //******************************************************** IF(!ISSET($BLOCO)) $BLOCO = 0; //******************************************************** #------------------------------------- # Quantide de exibição por página! $QUANTIDADE = 2; #------------------------------------- # Total de resultado! require("conecta.php"); $sql = mysql_query("Select * from noticias Limit $BLOCO,$QUANTIDADE"); $lines = mysql_num_rows($sql); while ($i = mysql_fetch_array($sql)) { echo "<b>".$i['titulo']."</b><br>"; $id = $i['id']; $desc = $i['descricao_peq']; echo "<b><a href=\"$PHP_SELF?acao=ver&id=$id\">$desc</a>...Leia Mais<br><hr>"; } $sql1 = mysql_query("Select * from noticias"); $linhas = mysql_num_rows($sql1); $RESULTADO_TOTAL = $linhas; //******************************************************** $BLOCOS_TOTAL = $RESULTADO_TOTAL / $QUANTIDADE; #--------------------------------------------------------------------------------- # Aqui ele irá gerar os blocos para navegação! ECHO ("| "); FOR ($DISTRIBUE = 0; $DISTRIBUE < ($BLOCOS_TOTAL) + 0; $DISTRIBUE++) { // Abre distribue $DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE; #------------------------------------------------- # Aqui ele mostrará em negrito o bloco atual! IF ($BLOCO=="$DISTRIBUE_BLOCOS"){ ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\"><B>[$DISTRIBUE_BLOCOS]</B></A> |"); } ELSE { ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\">$DISTRIBUE_BLOCOS</A> |"); } #------------------------------------------------- } // Fecha distribue ?> Se alguém puder me ajudar a colocar do tipo |0| 1 2 3 4 5....., póde ser um script diferente tb...Desde já valeu galera.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 André Gusmão Postado Novembro 7, 2003 Denunciar Share Postado Novembro 7, 2003 Há uns comentários a fazer sobre essa parte de distribuir os blocos:ECHO ("| ");FOR ($DISTRIBUE = 0; $DISTRIBUE < ($BLOCOS_TOTAL) + 0; $DISTRIBUE++) { // Abre distribue$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE;#-------------------------------------------------# Aqui ele mostrará em negrito o bloco atual!IF ($BLOCO=="$DISTRIBUE_BLOCOS"){ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\"><B>[$DISTRIBUE_BLOCOS]</B></A> |");} ELSE {ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\">$DISTRIBUE_BLOCOS</A> |");}1. Pra que fazer $BLOCOS_TOTAL+0? É o mesmo que se referenciar somente a $BLOCOS_TOTAL2. A comparação $BLOCO=="$DISTRIBUE_BLOCOS" pode ser substituída por $BLOCO==$DISTRIBUE_BLOCOS, afinal são duas variáveis.3. Não use MAIÚSCULAS para os comandos do PHPE, finalmente... a sequência de páginas está daquela forma por causa disso:$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADEOu seja, se $QUANTIDADE for igual a 2, a sequência sempre será um múltiplo de 2.Analise melhor este código que você vai encontrar o erro, OK? ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Novembro 7, 2003 Denunciar Share Postado Novembro 7, 2003 Correção no código:<?PHP## Salve como paginação.php## Para teste acesse:## http:/localhost/paginacao.php?BLOCO=0&QUANTIDADE=10&RESULTADO_TOTAL=30## Ai é só mudando os valores e veja! Agora é só adptar com as variaveis do script###---------------------------------------------------------------------------------# Em SELECT coloque no LIMIT $BLOCO,$QUANTIDADE//********************************************************// Caso $BLOCO não tenha outro valor seu valor será 0.//********************************************************IF(!ISSET($BLOCO)) $BLOCO = 0;//********************************************************#-------------------------------------# Quantide de exibição por página!$QUANTIDADE = 2;#-------------------------------------# Total de resultado!require("conecta.php");$sql = mysql_query("Select * from noticias Limit $BLOCO,$QUANTIDADE");$lines = mysql_num_rows($sql);while ($i = mysql_fetch_array($sql)) {echo "<b>".$i['titulo']."</b><br>";$id = $i['id'];$desc = $i['descricao_peq'];echo "<b><a href=\"$PHP_SELF?acao=ver&id=$id\">$desc</a>...Leia Mais<br><hr>";}$sql1 = mysql_query("Select * from noticias");$linhas = mysql_num_rows($sql1);$RESULTADO_TOTAL = $linhas;//********************************************************$BLOCOS_TOTAL = $RESULTADO_TOTAL / $QUANTIDADE;#---------------------------------------------------------------------------------# Aqui ele irá gerar os blocos para navegação!ECHO ("| ");FOR ($DISTRIBUE = 0; $DISTRIBUE < ($BLOCOS_TOTAL) + 0; $DISTRIBUE++) { // Abre distribue$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE;#-------------------------------------------------# Aqui ele mostrará em negrito o bloco atual!IF ($BLOCO=="$DISTRIBUE"){ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\"><B>[$DISTRIBUE]</B></A> |");} ELSE {ECHO (" <A HREF=\"?BLOCO=$DISTRIBUE_BLOCOS\">$DISTRIBUE</A> |");}#-------------------------------------------------} // Fecha distribue?>Este código eu fiz para a Carol, quando ela precisou fiz com um pouco de pressa me desculpe, pois não voltei para ver se tava tudo ok, mais agora eu acho que o problema está resolvido.Até mais. :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@luco Belez@ Postado Novembro 8, 2003 Autor Denunciar Share Postado Novembro 8, 2003 valeu mesmo Andre e Gladisson... Eu quebrei um pouco a cabeça e consegui mudar umas coisas pra ficar mais fácil e pra mim entender melhor.... :lol: <?PHP## Salve como paginação.php## Para teste acesse:## http:/localhost/paginacao.php?BLOCO=0&QUANTIDADE=10&RESULTADO_TOTAL=30## Ai é só mudando os valores e veja! Agora é só adptar com as variaveis do script###---------------------------------------------------------------------------------# Em SELECT coloque no LIMIT $BLOCO,$QUANTIDADE//********************************************************// Caso $BLOCO não tenha outro valor seu valor será 0.//********************************************************IF(!ISSET($pagina)) $pagina = 0;//********************************************************#-------------------------------------# Quantide de exibição por página!$quantidade = 2;$inicio = $pagina * $quantidade;#-------------------------------------# Total de resultado!require("conecta.php");$sql = mysql_query("Select * from noticias Limit $inicio,$quantidade") or die("erro de sql:".mysql_error());$lines = mysql_num_rows($sql);while ($i = mysql_fetch_array($sql)) {echo "<b>".$i['titulo']."</b><br>";$id = $i['id'];echo "$id<br>";$desc = $i['descricao_peq'];echo "<b><a href=\"$PHP_SELF?acao=ver&id=$id\">$desc</a>...Leia Mais<br><hr>";}$sql1 = mysql_query("Select * from noticias");$linhas = mysql_num_rows($sql1);$paginas = ceil($linhas / $quantidade);//********************************************************//$BLOCOS_TOTAL = $RESULTADO_TOTAL / $QUANTIDADE;#---------------------------------------------------------------------------------# Aqui ele irá gerar os blocos para navegação!//anteriorif($pagina>0) { $anterior = $pagina - 1; echo "<a href=\"?pagina=$anterior\">Anterior</a>"; }ECHO ("| ");FOR ($i = 0; $i < ($paginas) + 0; $i++) { // Abre distribue//$DISTRIBUE_BLOCOS = $DISTRIBUE * $QUANTIDADE;#-------------------------------------------------# Aqui ele mostrará em negrito o bloco atual!IF ($pagina=="$i"){ECHO (" <A HREF=\"?pagina=$i\"><B>[$i]</B></A> |");} ELSE {ECHO (" <A HREF=\"?pagina=$i\">$i</A> |");}#-------------------------------------------------} // Fecha distribue//proximaif($pagina < ($paginas - 1)) { $proxima = $pagina + 1; echo "<a href=\"?pagina=$proxima\">Próxima</a>"; }?>Mais uma vez brigadão pela força que vocês dão aqui no fórum, graças à ele e à vocês hj eu consigo pelo menos me virar com php..... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Novembro 8, 2003 Denunciar Share Postado Novembro 8, 2003 Sempre quando eu souber estarei ajudando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
M@luco Belez@
Olá!!
Eu estava querendo um esquema de paginação, ai eu usei a busca aqui do fórum e achei um que o Gladisson postou, do tipo |1| 2 3....
mas o que acontece é que se a quantidade a ser exbida por página for 2 por exemplo, ele fica assim...
|0| 2 4 6
se qtde for = 3
|0| 3 6 9
abaixo vai o código...
Se alguém puder me ajudar a colocar do tipo |0| 1 2 3 4 5....., póde ser um script diferente tb...
Desde já valeu galera....
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.