Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Não tô conseguindo usar Paginação do ESerra!


ReDNoS

Pergunta

Olá pessoal, eu peguei aqui no fórum uma paginação feita pelo ESerra e configurei de acordo com meu banco de dados e ficou assim:

<?PHP 

$page = $_GET['pagina'];

if($page=="" || $page<=0)$page=1;

$noi = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM game"));

$num_items = $noi[0];
$items_per_page= 5;
$num_pages = ceil($num_items/$items_per_page);
if(($page>$num_pages)&&$page!=1)$page= $num_pages;
$limit_start = ($page-1)*$items_per_page;

//changable sql



//xxxxxxxxxxx

$sql = "SELECT *, game.Id, user.NickName FROM game , user where game.Id=user.Id order by game.TotalRank LIMIT $limit_start, $items_per_page";
$rs = mysql_query($sql);
$numero = mysql_num_rows($rs);
if($numero > 0)
while($registro = mysql_fetch_array($rs))
{
//aqui aonde ira puxar os dados, configure os campos de acordo cm sua tabela
$id = $registro["NickName"];
echo "<a href=\"info.php?arquivo=$id\"><font color=\"white\"><b>$id</b>";
if($senha==teste){
echo "ID: $id<br/>";
}
echo "<br/>";
}

//aqui é para proxima e pag anterior

$f = "$page";
$php = $f + 1;
$res = "$php";
$php2 = $f - 1;
$res2 = "$php2";
echo "<p align=\"center\"><a href=\"teste.html?pagina=$res2\"><font color=\"white\">[&lt; Anterior]</font></a> <a href=\"teste.html?pagina=$res\"><font color=\"white\">[Proxima &gt;]</font></a>";


echo "<br/>Pagina: $page de $num_pages<br/><form action=\"teste.html\" method=\"get\"><input name=\"pagina\" type=\"text\" size=\"5\" style=\"-wap-input-format:'*N';background-color:black;border:white 1px solid;color:white\"><input type=\"submit\" value=\"OK\" style=\"background-color:black;border:white 1px solid;color:white\"></form><br/>";
$sqll = mysql_query("SELECT * FROM game");
$total = mysql_num_rows($sqll);
echo "<br/>Total: $total players";
?>

Mas eu estou com um problema, porque quando eu mudo de página ele continua mostrando os mesmos valores... Como faço para mostrar os valores corretos de acordo com a página? Alguém sabe o que está errado ou o que falta nesse código de paginção?

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Onde você pegou essa paginação feita por mim? Porque nela tem dois detalhes, o primeiro é que eu costumo criar variáveis em português e para definir a página no código eu sempre uso operador ternário...

Link para o comentário
Compartilhar em outros sites

  • 0

Peguei daqui: http://scriptbrasil.com.br/forum/index.php...l=Pagina%E7%E3o

Vixi, verdade cara, não foi você não, eu que não olhei direto, é pk você tinha respondido pro cara já aew associei o script à você...

Mas então, alguém sabe como resolver os probleminhas desse Script? Porque são 2 problemas! O primeiro é que ele está mostrando apenas os valores "Default" em todas as páginas...E o segundo problema é que, independentemente de que página eu esteja, a Próxima página e a página Anterior são sempre a mesma.

Alguém aê sabe como solucionar esses dois probleminhas? Porque fora disso o script tá muito bom!

Link para o comentário
Compartilhar em outros sites

  • 0

Putz cara, mesma coisa, continua mostrando apenas o primeiro nome da lista...

Olha como ficou o script com essa paginação que você me passou agora:

<?PHP 

$re = mysql_query("SELECT count(*) as NickName FROM game");
$total = mysql_result($re, 0, "NickName");

$pagina = 0;
if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}

$limite = 5;
$paginas = ceil($total / $limite);

$inicio = $pagina * $limite;

$sql = mysql_query("SELECT *, game.Id, user.NickName FROM game , user where game.Id=user.Id order by game.TotalRank LIMIT $inicio, $limite");

$conta = mysql_num_rows($sql);

while($r = mysql_fetch_array($sql)) {
$nome = $r["NickName"];
echo $nome."<br>";

}

if($pagina > 0) {
   $menos = $pagina - 1;
   $url = "teste.html?pagina=".$menos;
   echo "<a href=\"$url\">Anterior</a>";
}
for($i = 1;$i < $paginas; $i++) {
   $url = "teste.html?pagina=".$i;
   echo " | <a href=\"$url\">$i</a>";
}
if($pagina < $paginas) {
   $mais = $pagina + 1;
   $url = "teste.html?pagina=".$mais;

   echo " | <a href=\"$url\">Próxima</a>";

}
?>

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

  • 0
Mas o problema é que eu não sei aonde tá o erro! Quando eu mudo de página ele continua mostrando a mesma lista de valor da página 1! Plz cara me ajuda :wacko:

Deixa eu te fazer pensar um pouco, me explica como ele faz a paginação, se você me provar que leu e entendeu eu te ajudo...

E outra coisa a sua página é teste.html? Você alterou o apache pra intepretar arquivo .html como sendo PHP?

Link para o comentário
Compartilhar em outros sites

  • 0
Mas o problema é que eu não sei aonde tá o erro! Quando eu mudo de página ele continua mostrando a mesma lista de valor da página 1! Plz cara me ajuda :wacko:

Deixa eu te fazer pensar um pouco, me explica como ele faz a paginação, se você me provar que leu e entendeu eu te ajudo...

E outra coisa a sua página é teste.html? Você alterou o apache pra intepretar arquivo .html como sendo PHP?

Sim, mudei sim, já já eu te explico o que eu entendi...aew eu edito esse quote pra evitar flood!

Coloquei as explicações a frente de cada linha, vê se você entende e por favor me ajuda =/

<?PHP 

$re = mysql_query("SELECT count(*) as NickName FROM game");// Aqui seleciona a tabela do banco de dados
$total = mysql_result($re, 0, "NickName");//Sinceramente não sei o que isso faz mas acho que pega o total de valores selecionados

$pagina = 0;//Aqui defini a página "Default"
if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}// Até aqui ele deixa $pagina = $_GET["pagina"]; quando $_GET["pagina"] está setado

$limite = 5;//Aqui define o número de valores que será mostrado
$paginas = ceil($total / $limite);//Não sei o que é ceil mas divide o Total de Valores por o Limite de Valores que será mostrado

$inicio = $pagina * $limite;//Multiplica a página atual setada por o Limite de valores

$sql = mysql_query("SELECT *, game.Id, user.NickName FROM game , user where game.Id=user.Id order by game.TotalRank LIMIT $inicio, $limite");//Seleciona mais espicificamente os dados que serão mostrados

$conta = mysql_num_rows($sql);//Conta o número de linhas selecionadas?

while($r = mysql_fetch_array($sql)) {
$nome = $r["NickName"];
echo $nome."<br>";//mostra os dados

}

if($pagina > 0) {//Se pagina for maior que 0 então
   $menos = $pagina - 1;
   $url = "teste.html?pagina=".$menos;
   echo "<a href=\"$url\">Anterior</a>";//Anterior será mostrando onde a página anterior será a página atual - 1
}
for($i = 1;$i < $paginas; $i++) {//Se $i for menor que $paginas então
   $url = "teste.html?pagina=".$i;
   echo " | <a href=\"$url\">$i</a>";//Mostra as páginas disponíveis
}
if($pagina < $paginas) {//Se a pagina=1 for menor que a pagina apresentada então
   $mais = $pagina + 1;
   $url = "teste.html?pagina=".$mais;

   echo " | <a href=\"$url\">Próxima</a>";//Mostra o link Próxima onde o link é igual pagina atual + 1

}
?>

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...