Advertisement
MizunoBrasil

listagem_noticias.php

Dec 25th, 2023 (edited)
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.94 KB | None | 0 0
  1. Listagem dos Registros (Notícias) com pesquisa no banco de dados. 6 registros por página. Pode alterar em $registrosPorPagina
  2. Tabela  noticias
  3.  
  4. Comando SQL para criar a tabela:
  5. CREATE TABLE noticias (
  6.     id INT AUTO_INCREMENT PRIMARY KEY,
  7.     titulo VARCHAR(255) NOT NULL,
  8.     noticia TEXT NOT NULL,
  9.     palavras_chave VARCHAR(255) NOT NULL,
  10.     data_cadastro DATE NOT NULL
  11. );
  12.  
  13.  
  14. ***************************************************************************************************
  15. AQUI COMEÇA O CÓDIGO:
  16.  
  17.  
  18. <?php
  19. $servername = "Seu Servidor";
  20. $username = "Seu Nome de Usuario";
  21. $password = "Senha do Banco da Dados";
  22. $dbname = "Nome do Banco de Dados";
  23.  
  24. // Conectar ao banco de dados
  25. $conn = new mysqli($servername, $username, $password, $dbname);
  26.  
  27. // Verificar a conexão
  28. if ($conn->connect_error) {
  29.     die("Falha na conexão com o banco de dados: " . $conn->connect_error);
  30. }
  31.  
  32. // Definir o número de registros por página
  33. $registrosPorPagina = 6;
  34.  
  35. // Obter o número total de registros
  36. $sqlTotalRegistros = "SELECT COUNT(*) as total FROM noticias";
  37. $resultTotalRegistros = $conn->query($sqlTotalRegistros);
  38. $totalRegistros = $resultTotalRegistros->fetch_assoc()['total'];
  39.  
  40. // Calcular o número total de páginas
  41. $totalPaginas = ceil($totalRegistros / $registrosPorPagina);
  42.  
  43. // Obter o número da página atual
  44. $paginaAtual = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
  45.  
  46. // Calcular o índice do primeiro registro da página atual
  47. $indicePrimeiroRegistro = ($paginaAtual - 1) * $registrosPorPagina;
  48.  
  49. // Verificar se foi feita uma pesquisa
  50. if (isset($_GET['pesquisa'])) {
  51.     $termoPesquisa = mysqli_real_escape_string($conn, $_GET['pesquisa']);
  52.  
  53.     // Modificar a consulta para incluir a pesquisa
  54.     $sqlSelecionarRegistros = "SELECT * FROM noticias
  55.                               WHERE titulo LIKE '%$termoPesquisa%' OR noticia LIKE '%$termoPesquisa%' OR palavras_chave LIKE '%$termoPesquisa%'
  56.                               ORDER BY id DESC
  57.                               LIMIT $indicePrimeiroRegistro, $registrosPorPagina";
  58. } else {
  59.     // Selecionar os registros da página atual sem pesquisa
  60.     $sqlSelecionarRegistros = "SELECT * FROM noticias
  61.                               ORDER BY id DESC
  62.                               LIMIT $indicePrimeiroRegistro, $registrosPorPagina";
  63. }
  64.  
  65. $resultRegistros = $conn->query($sqlSelecionarRegistros);
  66. ?>
  67.  
  68. <!DOCTYPE html>
  69. <html lang="en">
  70. <head>
  71.     <meta charset="UTF-8">
  72.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  73.     <title>Listagem de Notícias</title>
  74.     <style>
  75.         body {
  76.             font-family: 'Lora', serif;
  77.             max-width: 800px; /* Largura de 800px Altere se você quiser */
  78.             margin: 0 auto;
  79.             padding: 20px;
  80.             font-size: 20px;
  81.         }
  82.  
  83.         .noticia {
  84.             margin-bottom: 20px;
  85.         }
  86.  
  87.         .paginacao {
  88.             margin-top: 20px;
  89.         }
  90.     </style>
  91. </head>
  92. <body>
  93.     <h1>Listagem de Notícias</h1>
  94.  
  95.     <form method="get">
  96.         <label for="pesquisa">Pesquisar:</label>
  97.         <input type="text" id="pesquisa" name="pesquisa">
  98.         <button type="submit">Buscar</button>
  99.     </form>
  100.  
  101.     <?php while ($row = $resultRegistros->fetch_assoc()): ?>
  102.         <div class="noticia">
  103.             <h2><?php echo $row['titulo']; ?></h2>
  104.             <p><?php echo $row['noticia']; ?></p>
  105.             <p>Palavras-chave: <?php echo $row['palavras_chave']; ?></p>
  106.             <p>Data de Cadastro: <?php echo date('d-m-Y', strtotime($row['data_cadastro'])); ?></p>
  107.         </div>
  108.     <?php endwhile; ?>
  109.  
  110.     <div class="paginacao">
  111.         <?php for ($pagina = 1; $pagina <= $totalPaginas; $pagina++): ?>
  112.             <a href="?pagina=<?php echo $pagina; ?>&pesquisa=<?php echo isset($_GET['pesquisa']) ? $_GET['pesquisa'] : ''; ?>"><?php echo $pagina; ?></a>
  113.         <?php endfor; ?>
  114.     </div>
  115. </body>
  116. </html>
  117.  
  118. <?php
  119. // Fechar a conexão
  120. $conn->close();
  121. ?>
  122.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement