Jump to content


Photo

A Paginação Não Avança!


  • Faça o login para participar
6 replies to this topic

#1 Kiedis

Kiedis

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 19/01/2008, 19:57

Olá, bom eu pegeui um script de paginação e tentei mudar ele, coloquei mais alguns
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 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 19/01/2008, 20:08

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..

Edição feita por: Henderson, 19/01/2008, 20:10.


#3 Kiedis

Kiedis

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

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 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 19/01/2008, 20:43

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>


#5 Kiedis

Kiedis

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

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 :lol:
Muito Obrigado!!

Mais me diz, no que vc mexeu, procurei aqui e não achei :assobio:

teh+ e obrigado mais uma vez!

#6 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 19/01/2008, 21:00

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 forma
if (isset($_GET['pagina']))
$pagina = $_GET['pagina'];
else
$pagina = 1;


#7 Kiedis

Kiedis

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

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 forma
if (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)

IPB Skin By Virteq