Paginação de Resultados - Parte II
Após um tempo de ter escrito a primeira parte do artigo de paginação de resultados,
estou de volta para explicar a vocês como colocar o número das páginas nos seus scripts.
Antes de mais nada, vou colocar o link da primeira parte, caso alguém não tenha visto.
O endereço do primeiro artigo é: http://www.phpbrasil.com/articles/article.php/id/245
O código utilizado no artigo antigo era o seguinte:
Na próxima página, a continuação...
estou de volta para explicar a vocês como colocar o número das páginas nos seus scripts.
Antes de mais nada, vou colocar o link da primeira parte, caso alguém não tenha visto.
O endereço do primeiro artigo é: http://www.phpbrasil.com/articles/article.php/id/245
O código utilizado no artigo antigo era o seguinte:
<?php $conn = mysql_connect("host","user","senha"); $banco = mysql_select_db("bancodedados"); $busca = "SELECT * FROM tabela"; $total_reg = "10"; // número de registros por página if (!$pagina) { $pc = "1"; } else { $pc = $pagina; } $inicio = $pc - 1; $inicio = $inicio * $total_reg; $limite = mysql_query("$busca LIMIT $inicio,$total_reg"); $todos = mysql_query("$busca"); $tr = mysql_num_rows($todos); // verifica o número total de registros $tp = $tr / $total_reg; // verifica o número total de páginas // vamos criar a visualização while ($dados = mysql_fetch_array($limite)) { $nome = $dados["nome"]; echo "Nome: $nome<br>"; } // agora vamos criar os botões "Anterior e próximo" $anterior = $pc -1; $proximo = $pc +1; if ($pc > 1) { echo " <a href='?pagina=$anterior'><- Anterior</a> "; } echo "|"; if ($pc < $tp) { echo " <a href='?pagina=$proximo'>Próxima -></a>"; } ?>
Na próxima página, a continuação...
Páginas:
1
2
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
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
(~17 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
$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
(~17 anos atrás)
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
(~19 anos atrás)
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 . "] ";
}
} else {
// se for diferente, aparece o link para a página
if ($pi > "0") {
echo "<a href='?name=icashop&pagina=" . $pi . "'>[" . $pi . "]</a> ";
}
}
}
}
echo "|";
if ($pc < $tp) {
echo "<a href='?name=icashop&pagina=$proximo'>Próxima -></a>";
}else{
echo "Próxima ->";
}
?>
$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 . "] ";
}
} else {
// se for diferente, aparece o link para a página
if ($pi > "0") {
echo "<a href='?name=icashop&pagina=" . $pi . "'>[" . $pi . "]</a> ";
}
}
}
}
echo "|";
if ($pc < $tp) {
echo "<a href='?name=icashop&pagina=$proximo'>Próxima -></a>";
}else{
echo "Próxima ->";
}
?>
04/02/2005 9:50am
(~20 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
(~22 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
(~22 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
vo ver si tem algu erradu
07/02/2003 11:19am
(~22 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.
Acho que são as variáveis $flag1 e $intervalo, já que não estáo definidas.
04/02/2003 10:12am
(~22 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.
Acho que são as variáveis $flag1 e $intervalo, já que não estáo definidas.
04/02/2003 10:12am
(~22 anos atrás)
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!!!