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

(Resolvido) Paginação


Nill

Pergunta

peguei o codigo pronto de paginação no link -> http://www.vivaolinux.com.br/publico/paginacao.txt

Alterei o codigo para as meinhas necessidades e esta exibindo normalmente, porém quando eu clico para pagina 2, não esta exibindo o conteudo da segunda pagina. Fica somente na primeira, conforme o link -> http://www.vigacaldeiraria.com.br/pesquisa...tepaginacao.php

Segue o codigo com as alterações que fiz:

<? 
// bloco 0 - conecte-se ao banco de dados
include "../conecta.php";


// bloco 1 - defina o número de registros exibidos por página
$num_por_pagina = 5;

// bloco 2 - descubra o número da página que será exibida
// se o numero da página não for informado, definir como 1
if (!$pagina) {
   $pagina = 1;
}

// bloco 3 - construa uma cláusula SQL "SELECT" que nos retorne somente os registros desejados
// definir o número do primeiro registro da página. Faça a continha na calculadora que você entenderá minha fórmula.
$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;

// consulta apenas os registros da página em questão utilizando como auxílio a definição LIMIT. Ordene os registros pela quantidade de pontos, começando do maior para o menor DESC.
$consulta = "SELECT id, empresa, responsavel, data   FROM tbl_pesqsat ORDER BY id DESC LIMIT $primeiro_registro, $num_por_pagina";

// executar query
$res = mysql_query($consulta,$conexao);

//bloco 4 exibe o cabeçalho da pagina
echo "<center>
    <tr><th align=center><b><font size=4 color=#FF0000>Exibir Formulario de Cadastro de Cliente</th></tr>
    <br><p>
    <table border = '0'
    <tr>
      <td width = '50'><font color = 'blue'><center>ID</font></td>
      <td width = '250'><font color = 'blue'><center>Empresa</font></td>
      <td width = '160'><font color = 'blue'><center>Resposavel</font></td>
      <td width = '60'><font color = 'blue'><center>Data</font></td>
      <td width = '90'><font color = 'blue'><center>Ação</font></td>
   </tr>
   </table>";


// bloco 5 - exiba os registros na tela
while (list($id, $empresa, $responsavel, $data) = mysql_fetch_array($res)) {
echo "<center>
 <form action = 'pesquisa_db.php' target='_blank' method = 'POST'>
  <table border = 0>
 <tr>
 <td width = '50'><center>
 $id &nbsp </td>
 <td width = '250'><center>
 $empresa &nbsp </td>
 <td width = '160'><center>
 $responsavel &nbsp </td>
 <td width = '90'><center>
 $data &nbsp </td>
 <input type='hidden' name='id' value='$id' >
 <td>
 <input type = 'submit' value ='Exibir'>
 </td>
 </tr>
 </table>
</form>
 </center>";
}
;


// bloco 6 - construa e exiba um painel de navegabilidade entre as páginas
$consulta = "SELECT COUNT(*) FROM tbl_pesqsat";
list($total_usuarios) = mysql_fetch_array(mysql_query($consulta,$conexao));

$total_paginas = $total_usuarios/$num_por_pagina;

$prev = $pagina - 1;
$next = $pagina + 1;
// se página maior que 1 (um), então temos link para a página anterior
if ($pagina > 1) {
$prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";
} else { // senão não há link para a página anterior
$prev_link = "Anterior";
}

// se número total de páginas for maior que a página corrente, então temos link para a próxima página
if ($total_paginas > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";
} else { // senão não há link para a próxima página
$next_link = "Próxima";
}

// vamos arredondar para o alto o número de páginas que serão necessárias para exibir todos os registros. Por exemplo, se temos 20 registros e mostramos 6 por página, nossa variável $total_paginas será igual a 20/6, que resultará em 3.33. Para exibir os 2 registros restantes dos 18 mostrados nas primeiras 3 páginas (0.33), será necessária a quarta página. Logo, sempre devemos arredondar uma fração de número real para um inteiro de cima e isto é feito com a função ceil().
$total_paginas = ceil($total_paginas);
$painel = "";
for ($x=1; $x<=$total_paginas; $x++) {
  if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página
    $painel .= " [$x] ";
  } else {
    $painel .= " <a href=\"$PHP_SELF?pagina=$x\">[$x]</a>";
  }
}


// exibir painel na tela
echo "$prev_link | $painel | $next_link";
?>

não estou conseguindo achar o erro.. se puderem me ajudar ai.. vlw

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Esse seu código depende de resgister_globals ON para funcionar...

Altere isso:

if (!$pagina) {
   $pagina = 1;
}
Para isso:
if (!isset($_GET['pagina'])) {
   $pagina = 1;
}else{
$pagina = $_GET['pagina'];
}

Não olhei o resto...

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
      652,1k
×
×
  • Criar Novo...