+2

Paginação de Resultados - Parte II

criado por Diego Mascarenhas em 29/01/2003 3:46pm
Vamos ao trabalho...
O código da paginação com Anterior, número de páginas e próxima é o seguinte:

<?php
// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
$pi = $flag1 * $intervalo;
if ($pi == "0") {
    $pi = "1";
}
$pf = $pi + $intervalo - 1;
if ($pc > 1) {
    echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
for ($pi; $pi < $pf; $pi++) {
    // Se número da página for menor que total de páginas
    if ($pi <= $tp) {
        if ($pc == $pi) {
            // se página atual for igual a página selecionada
            echo "[" . $pi . "]&nbsp;";
        } else { 
            // se for diferente, aparece o link para a página
            echo "<a href='?pagina=" . $pi . "'>" . $pi . "</a>&nbsp;";
        }
    }
}
echo "|";
if ($pc < $tp) {
    echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
?>

Bom é basicamente isso, caso tenham alguma dúvida, é só postarem aqui.

Espero ter ajudado,
Diego

Comentários:

Mostrando 1 - 10 de 13 comentários
Marcondes disse:
Eu sei que é meio tarda pra responder, mas alguém pode precisar!!!

Sendo assim,O erro:

ERROR: LIMIT #,# syntax is not supported\nHINT: Use separate LIMIT and OFFSET clauses.

Este é um problema com o PEAR, o PostgreSQL não suporta a nova sintaxe.

Você de usar :

$limite = pg_query("$busca LIMIT $inicio OFFSET $total_reg");

Observe o OFFSET no meio no lugar da vírgula....


abraços!!!
23/12/2009 12:10am (~11 anos atrás)

CONDE COLOCO UM ORDER BY PARA ORDENAR?

RECEBO A SEGUINTE MENSAGEM AO INSERIR

$sql2 = mysql_query("SELECT * FROM videos LIMIT $inicio,$total_reg ORDER BY id DESC");


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in f:\www.revistavipbrasil.com.br\tv\videos.php on line 29
02/07/2007 7:38pm (~13 anos atrás)

Eu uso o PostgreSQL e essa linha está dando erro para mim:

$limite = pg_query("$busca LIMIT $inicio,$total_reg");

Acredito que seja o LIMIT, vejam o erro:
pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: LIMIT #,# syntax is not supported\nHINT: Use separate LIMIT and OFFSET clauses.

Alguem pode me ajudar?
Dago
22/06/2007 7:46am (~13 anos atrás)

herson leite disse:
nossa veio num tou conseguindo de geito nenhum, aparece na segunda paginação sempre os mesmos resultados da primeira!! como eu arrumo isso?
16/09/2005 6:08pm (~15 anos atrás)

Endymion disse:
Alterar a linha:

$tp = $tr / $total_reg; // verifica o número total de páginas

para

$tp = ceil($tr / $total_reg); // verifica o número total de páginas

Codigo dos botões:

<?php
// agora vamos criar os botões "Anterior e próximo"
$intervalo = 10;
$anterior = $pc -1;
$proximo = $pc +1;
$flag1 = floor($pc/$intervalo);
$pi = ($flag1 * $intervalo );
$pf = $pi + $intervalo;
if ($pc > 1) {
echo "<a href='?name=icashop&pagina=$anterior'><- Anterior</a> ";
}else{
echo "<- Anterior";
}
echo "|";
for ($pi; $pi < $pf; $pi++) {
// Se número da página for menor que total de páginas
if ($pi <= $tp) {
if ($pc == $pi) {
// se página atual for igual a página selecionada
if ($pi > "0") {
echo "[" . $pi . "]&nbsp;";
}
} else {
// se for diferente, aparece o link para a página
if ($pi > "0") {
echo "<a href='?name=icashop&pagina=" . $pi . "'>[" . $pi . "]</a>&nbsp;";
}

}
}
}
echo "|";
if ($pc < $tp) {
echo "<a href='?name=icashop&pagina=$proximo'>Próxima -></a>";
}else{
echo "Próxima ->";
}

?>
04/02/2005 9:50am (~16 anos atrás)

Bom galera.. creio que teve algum erro no meu artigo, me basiei a partir do DGNavBar pra fazer a segunda parte(numeracao)... e como faz tempo ki postei esse artigo... nao lembro qual foi a logika ki usei... vou ver si assim ki der um tempo.. eu posto o código certo aki.. ok? valew
19/02/2003 9:56pm (~18 anos atrás)

eh o anterior e proximo rolam mas a numeração num aparece naum... mas tah 10 o artigo Diego
14/02/2003 9:49am (~18 anos atrás)

Faiz tempu k postei essi artigu.. ai num mi lembru mtu bem da logica direitinhu naum.. mas eli soh saiu agora.. pq eu num sei.. =[

vo ver si tem algu erradu
07/02/2003 11:19am (~18 anos atrás)

Os links "anterior" e "próximo" funcionam mas os intervalos nem sequer aparecem.
Acho que são as variáveis $flag1 e $intervalo, já que não estáo definidas.
04/02/2003 10:12am (~18 anos atrás)

Os links "anterior" e "próximo" funcionam mas os intervalos nem sequer aparecem.
Acho que são as variáveis $flag1 e $intervalo, já que não estáo definidas.
04/02/2003 10:12am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)