
A Paginação Não Avança!
#1
Posted 19/01/2008, 19:57
campos na tabela, funcionou legal, menos uma coisa, coloquei para imprimir 6 resultados por página
ai faz a páginação em baixo e mostra os links para as outras páginas,
Anterior 1 - 2 - 3 - 4 Proxima
Mais só que quando eu cliko nas outras páginas elas não vem, fica na mesma página sempre (na página 1).
Na tabela tem muitos registros, então quando clicasse na página 2 era pra mostrar, mais não estão mostrando !
Vou colocar a parte que eu acho que está errado, já tentei de várias maneiras e nada deu
certo, se alguém souber como concertar, fico agradecido!!!
pagincacao.php:[codebox]//Faz a Paginação
$consulta = "SELECT COUNT(*) FROM letras";
list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con));
$total_paginas = $total_usuarios/$num_por_pagina;
$prev = $pagina - 1;
$next = $pagina + 1;
if ($pagina > 1) {
$prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";
} else {
$prev_link = "Anterior";
}
if ($total_paginas > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";
} else {
$next_link = "Próxima";
}
$total_paginas = ceil($total_paginas);
$painel = "";
for ($x=1; $x<=$total_paginas; $x++) {
if ($x==$pagina) {
$painel .= " [$x] ";
} else {
$painel .= " <a href=\"$PHP_SELF?pagina=$x\">$x</a>";
}
}
echo "$prev_link | $painel | $next_link";
?>[/codebox]
#2
Posted 19/01/2008, 20:08
se tiver erro não é aí, e sim na parte onde mostra os registro, posta ela..
Edição feita por: Henderson, 19/01/2008, 20:10.
#3
Posted 19/01/2008, 20:25
cara, essa parte do código é só a parte que monta o link..
se tiver erro não é aí, e sim na parte onde mostra os registro, posta ela..
É, mudei a parte que voce me falow, e pelo menos os links foi mudando tipo, vai certinho do 1
par dois, do 2 para tres e assim por diante, mais os resultados são os mesmos!!!
Abaixo está o código todo:
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Paginacao</title></head><body><?php// Conexao$con = mysql_connect('localhost','root',''); mysql_select_db('teste');$num_por_pagina = 1; if (!$pagina) { $pagina = 1; }$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;$consulta = "SELECT titulo, link, cantor, autor, hits FROM letras ORDER BY hits DESC LIMIT $primeiro_registro, $num_por_pagina";$res = mysql_query($consulta,$con);//Imprime os Resultadosecho "<ul>"; while (list($titulo, $link, $cantor, $autor, $hits) = mysql_fetch_array($res)) {echo "<li><a href=\"$link\">$titulo</a> - $cantor - $hits"; }echo "</ul>";//Faz a Paginação$consulta = "SELECT COUNT(*) FROM letras";list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con));$pagina = (isset($_GET['pagina']) ? $_GET['pagina'] : 1);$total_paginas = $total_usuarios/$num_por_pagina;$prev = $pagina - 1;$next = $pagina + 1;if ($pagina > 1) {$prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";} else {$prev_link = "Anterior";}if ($total_paginas > $pagina) {$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";} else {$next_link = "Próxima";}$total_paginas = ceil($total_paginas);$painel = "";for ($x=1; $x<=$total_paginas; $x++) {if ($x==$pagina) {$painel .= " [$x] ";} else {$painel .= " <a href=\"$PHP_SELF?pagina=$x\">$x</a>";}}echo "$prev_link | $painel | $next_link";?></body></html>
teh+!
Ai no código que coloquei ai, o número de registro por página está 1, mais o correto
é 10!!
teh+!!
#4
Posted 19/01/2008, 20:43
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Paginacao</title> </head> <body> <?php // Conexao $con = mysql_connect('localhost','root',''); mysql_select_db('teste'); $num_por_pagina = 1; $pagina = (isset($_GET['pagina']) ? $_GET['pagina'] : 1); $primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina; $consulta = "SELECT titulo, link, cantor, autor, hits FROM letras ORDER BY hits DESC LIMIT $primeiro_registro, $num_por_pagina"; $res = mysql_query($consulta,$con); //Imprime os Resultados echo "<ul>"; while (list($titulo, $link, $cantor, $autor, $hits) = mysql_fetch_array($res)) {echo "<li><a href=\"$link\">$titulo</a> - $cantor - $hits"; }echo "</ul>"; //Faz a Paginação $consulta = "SELECT COUNT(*) FROM letras"; list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con)); $total_paginas = $total_usuarios/$num_por_pagina; $prev = $pagina - 1; $next = $pagina + 1; if ($pagina > 1) { $prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>"; } else { $prev_link = "Anterior"; } if ($total_paginas > $pagina) { $next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima"; } else { $next_link = "Próxima"; } $total_paginas = ceil($total_paginas); $painel = ""; for ($x=1; $x<=$total_paginas; $x++) { if ($x==$pagina) { $painel .= " [$x] "; } else { $painel .= " <a href=\"$PHP_SELF?pagina=$x\">$x</a>"; } } echo "$prev_link | $painel | $next_link"; ?> </body> </html>
#5
Posted 19/01/2008, 20:50
tenta assim
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Paginacao</title> </head> <body> <?php // Conexao $con = mysql_connect('localhost','root',''); mysql_select_db('teste'); $num_por_pagina = 1; $pagina = (isset($_GET['pagina']) ? $_GET['pagina'] : 1); $primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina; $consulta = "SELECT titulo, link, cantor, autor, hits FROM letras ORDER BY hits DESC LIMIT $primeiro_registro, $num_por_pagina"; $res = mysql_query($consulta,$con); //Imprime os Resultados echo "<ul>"; while (list($titulo, $link, $cantor, $autor, $hits) = mysql_fetch_array($res)) {echo "<li><a href=\"$link\">$titulo</a> - $cantor - $hits"; }echo "</ul>"; //Faz a Paginação $consulta = "SELECT COUNT(*) FROM letras"; list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$con)); $total_paginas = $total_usuarios/$num_por_pagina; $prev = $pagina - 1; $next = $pagina + 1; if ($pagina > 1) { $prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>"; } else { $prev_link = "Anterior"; } if ($total_paginas > $pagina) { $next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima"; } else { $next_link = "Próxima"; } $total_paginas = ceil($total_paginas); $painel = ""; for ($x=1; $x<=$total_paginas; $x++) { if ($x==$pagina) { $painel .= " [$x] "; } else { $painel .= " <a href=\"$PHP_SELF?pagina=$x\">$x</a>"; } } echo "$prev_link | $painel | $next_link"; ?> </body> </html>
Pow cara perfeito show de bola, funcionou legal

Muito Obrigado!!
Mais me diz, no que vc mexeu, procurei aqui e não achei

teh+ e obrigado mais uma vez!
#6
Posted 19/01/2008, 21:00
você não tava pegando o valor da página atual de lugar nenhum, então eu coloquei essa linha
$pagina = (isset($_GET['pagina']) ? $_GET['pagina'] : 1);
que ela pega o valor da página atual e se ele não existir, deixa o valor como 1
aliás, eu coloquei sem querer ali uns parenteses a mais, haeuihiae, mas funcionou mesmo assim.. não precisava ed alguns, se quiser essa linha pode ser assim
$pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
isso funciona como um if, da segunda forma
if (isset($_GET['pagina'])) $pagina = $_GET['pagina']; else $pagina = 1;
#7
Posted 19/01/2008, 21:04
seguitne..
você não tava pegando o valor da página atual de lugar nenhum, então eu coloquei essa linha$pagina = (isset($_GET['pagina']) ? $_GET['pagina'] : 1);
que ela pega o valor da página atual e se ele não existir, deixa o valor como 1
aliás, eu coloquei sem querer ali uns parenteses a mais, haeuihiae, mas funcionou mesmo assim.. não precisava ed alguns, se quiser essa linha pode ser assim$pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
isso funciona como um if, da segunda formaif (isset($_GET['pagina'])) $pagina = $_GET['pagina']; else $pagina = 1;
Ah tá, valeu!!
Resolveu meu problema (tava desde 7 e meia tentando resolver)
Boa noite pra vc!
Fuiz!!!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)