hercioneto

Exemplo Paginação

Jul 31st, 2023
981
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.89 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Paginação de Registros</title>
  5.     <style>
  6.         table {
  7.             width: 100%;
  8.             border-collapse: collapse;
  9.         }
  10.         th, td {
  11.             border: 1px solid #ccc;
  12.             padding: 8px;
  13.         }
  14.     </style>
  15. </head>
  16. <body>
  17.     <h1>Registros de Clientes</h1>
  18.  
  19.     <?php
  20.     // Conexão com o banco de dados MySQL
  21.     $conexao = new mysqli("localhost", "seu_usuario", "sua_senha", "seu_banco_de_dados");
  22.  
  23.     // Verificar se a conexão foi estabelecida corretamente
  24.     if ($conexao->connect_error) {
  25.         die("Erro na conexão: " . $conexao->connect_error);
  26.     }
  27.  
  28.     // Número de registros por página
  29.     $registros_por_pagina = 4;
  30.  
  31.     // Página atual (obtém o valor do parâmetro "pagina" na URL)
  32.     $pagina_atual = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
  33.  
  34.     // Consulta para obter o número total de registros
  35.     $consulta_total = "SELECT COUNT(*) AS total FROM tabela_clientes";
  36.     $resultado_total = $conexao->query($consulta_total);
  37.     $total_registros = $resultado_total->fetch_assoc()['total'];
  38.  
  39.     // Número total de páginas
  40.     $total_paginas = ceil($total_registros / $registros_por_pagina);
  41.  
  42.     // Limita o início dos registros para a consulta da página atual
  43.     $inicio = ($pagina_atual - 1) * $registros_por_pagina;
  44.  
  45.     // Consulta para obter os registros da página atual
  46.     $consulta_pagina = "SELECT * FROM tabela_clientes LIMIT $inicio, $registros_por_pagina";
  47.     $resultado_pagina = $conexao->query($consulta_pagina);
  48.  
  49.     // Verifica se há registros na página atual
  50.     if ($resultado_pagina->num_rows > 0) {
  51.     ?>
  52.  
  53.     <table>
  54.         <tr>
  55.             <th>ID</th>
  56.             <th>Nome</th>
  57.             <th>Telefone</th>
  58.         </tr>
  59.         <?php while ($registro = $resultado_pagina->fetch_assoc()) { ?>
  60.             <tr>
  61.                 <td><?php echo $registro['ID']; ?></td>
  62.                 <td><?php echo $registro['Nome']; ?></td>
  63.                 <td><?php echo $registro['Telefone']; ?></td>
  64.             </tr>
  65.         <?php } ?>
  66.     </table>
  67.  
  68.     <!-- Paginação -->
  69.     <?php if ($total_paginas > 1) { ?>
  70.         <div>
  71.             <?php if ($pagina_atual > 1) { ?>
  72.                 <a href="?pagina=<?php echo ($pagina_atual - 1); ?>">Anterior</a>
  73.             <?php } ?>
  74.             <?php if ($pagina_atual < $total_paginas) { ?>
  75.                 <a href="?pagina=<?php echo ($pagina_atual + 1); ?>">Próxima</a>
  76.             <?php } ?>
  77.         </div>
  78.     <?php } ?>
  79.  
  80.     <?php
  81.     } else {
  82.         echo "<p>Nenhum registro encontrado.</p>";
  83.     }
  84.  
  85.     // Fechar a conexão com o banco de dados
  86.     $conexao->close();
  87.     ?>
  88.  
  89. </body>
  90. </html>
  91.  
  92.  
  93. ---
  94.  
  95. SQL da tabela:
  96.  
  97. CREATE TABLE tabela_clientes (
  98.     ID INT AUTO_INCREMENT PRIMARY KEY,
  99.     Nome VARCHAR(50),
  100.     Telefone VARCHAR(15)
  101. );
  102.  
  103. INSERT INTO tabela_clientes (Nome, Telefone) VALUES
  104.     ('João da Silva', '11-1234-5678'),
  105.     ('Maria Souza', '22-2345-6789'),
  106.     ('Pedro Santos', '33-3456-7890'),
  107.     ('Ana Oliveira', '44-4567-8901'),
  108.     ('Rafaela Silva', '55-5678-9012'),
  109.     ('Lucas Pereira', '66-6789-0123'),
  110.     ('Fernanda Almeida', '77-7890-1234'),
  111.     ('Gustavo Lima', '88-8901-2345'),
  112.     ('Mariana Castro', '99-9012-3456'),
  113.     ('Carolina Santos', '10-0123-4567'),
  114.     ('Daniel Costa', '11-1234-5678'),
  115.     ('Larissa Ribeiro', '22-2345-6789'),
  116.     ('Ricardo Fernandes', '33-3456-7890'),
  117.     ('Patrícia Oliveira', '44-4567-8901'),
  118.     ('Roberto Alves', '55-5678-9012'),
  119.     ('Carla Melo', '66-6789-0123'),
  120.     ('Samuel Sousa', '77-7890-1234'),
  121.     ('Amanda Lima', '88-8901-2345'),
  122.     ('Paulo Rodrigues', '99-9012-3456'),
  123.     ('Juliana Costa', '10-0123-4567'),
  124.     ('Bruno Ferreira', '11-1234-5678'),
  125.     ('Caroline Andrade', '22-2345-6789'),
  126.     ('Tiago Santos', '33-3456-7890'),
  127.     ('Isabela Moraes', '44-4567-8901'),
  128.     ('Vinícius Carvalho', '55-5678-9012');
  129.  
Advertisement
Add Comment
Please, Sign In to add comment