Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Listagem dos Registros (Notícias) com pesquisa no banco de dados. 6 registros por página. Pode alterar em $registrosPorPagina
- Tabela noticias
- Comando SQL para criar a tabela:
- CREATE TABLE noticias (
- id INT AUTO_INCREMENT PRIMARY KEY,
- titulo VARCHAR(255) NOT NULL,
- noticia TEXT NOT NULL,
- palavras_chave VARCHAR(255) NOT NULL,
- data_cadastro DATE NOT NULL
- );
- ***************************************************************************************************
- AQUI COMEÇA O CÓDIGO:
- <?php
- $servername = "Seu Servidor";
- $username = "Seu Nome de Usuario";
- $password = "Senha do Banco da Dados";
- $dbname = "Nome do Banco de Dados";
- // Conectar ao banco de dados
- $conn = new mysqli($servername, $username, $password, $dbname);
- // Verificar a conexão
- if ($conn->connect_error) {
- die("Falha na conexão com o banco de dados: " . $conn->connect_error);
- }
- // Definir o número de registros por página
- $registrosPorPagina = 6;
- // Obter o número total de registros
- $sqlTotalRegistros = "SELECT COUNT(*) as total FROM noticias";
- $resultTotalRegistros = $conn->query($sqlTotalRegistros);
- $totalRegistros = $resultTotalRegistros->fetch_assoc()['total'];
- // Calcular o número total de páginas
- $totalPaginas = ceil($totalRegistros / $registrosPorPagina);
- // Obter o número da página atual
- $paginaAtual = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
- // Calcular o índice do primeiro registro da página atual
- $indicePrimeiroRegistro = ($paginaAtual - 1) * $registrosPorPagina;
- // Verificar se foi feita uma pesquisa
- if (isset($_GET['pesquisa'])) {
- $termoPesquisa = mysqli_real_escape_string($conn, $_GET['pesquisa']);
- // Modificar a consulta para incluir a pesquisa
- $sqlSelecionarRegistros = "SELECT * FROM noticias
- WHERE titulo LIKE '%$termoPesquisa%' OR noticia LIKE '%$termoPesquisa%' OR palavras_chave LIKE '%$termoPesquisa%'
- ORDER BY id DESC
- LIMIT $indicePrimeiroRegistro, $registrosPorPagina";
- } else {
- // Selecionar os registros da página atual sem pesquisa
- $sqlSelecionarRegistros = "SELECT * FROM noticias
- ORDER BY id DESC
- LIMIT $indicePrimeiroRegistro, $registrosPorPagina";
- }
- $resultRegistros = $conn->query($sqlSelecionarRegistros);
- ?>
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Listagem de Notícias</title>
- <style>
- body {
- font-family: 'Lora', serif;
- max-width: 800px; /* Largura de 800px Altere se você quiser */
- margin: 0 auto;
- padding: 20px;
- font-size: 20px;
- }
- .noticia {
- margin-bottom: 20px;
- }
- .paginacao {
- margin-top: 20px;
- }
- </style>
- </head>
- <body>
- <h1>Listagem de Notícias</h1>
- <form method="get">
- <label for="pesquisa">Pesquisar:</label>
- <input type="text" id="pesquisa" name="pesquisa">
- <button type="submit">Buscar</button>
- </form>
- <?php while ($row = $resultRegistros->fetch_assoc()): ?>
- <div class="noticia">
- <h2><?php echo $row['titulo']; ?></h2>
- <p><?php echo $row['noticia']; ?></p>
- <p>Palavras-chave: <?php echo $row['palavras_chave']; ?></p>
- <p>Data de Cadastro: <?php echo date('d-m-Y', strtotime($row['data_cadastro'])); ?></p>
- </div>
- <?php endwhile; ?>
- <div class="paginacao">
- <?php for ($pagina = 1; $pagina <= $totalPaginas; $pagina++): ?>
- <a href="?pagina=<?php echo $pagina; ?>&pesquisa=<?php echo isset($_GET['pesquisa']) ? $_GET['pesquisa'] : ''; ?>"><?php echo $pagina; ?></a>
- <?php endfor; ?>
- </div>
- </body>
- </html>
- <?php
- // Fechar a conexão
- $conn->close();
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement