Heim >Datenbank >MySQL-Tutorial >Wie implementiert man eine einfache Datenbank-Paginierung in PHP?
<code class="language-php"><?php // Database connection (replace with your credentials) $host = 'localhost'; $dbname = 'your_database'; $user = 'your_user'; $password = 'your_password'; try { $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Database connection failed: " . $e->getMessage()); } // Get total number of records $stmt = $dbh->query('SELECT COUNT(*) FROM your_table'); $totalRecords = $stmt->fetchColumn(); // Pagination settings $recordsPerPage = 20; $totalPages = ceil($totalRecords / $recordsPerPage); $currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1; $currentPage = max(1, min($currentPage, $totalPages)); // Ensure page number is within valid range $offset = ($currentPage - 1) * $recordsPerPage; // Fetch data for current page $stmt = $dbh->prepare("SELECT * FROM your_table LIMIT :limit OFFSET :offset"); $stmt->bindParam(':limit', $recordsPerPage, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); // Display data echo "<h2>Data (Page " . $currentPage . " of " . $totalPages . ")</h2>"; if ($data) { echo "<ul>"; foreach ($data as $row) { echo "<li>" . implode(", ", $row) . "</li>"; // Adjust as needed for your table structure } echo "</ul>"; } else { echo "<p>No data found for this page.</p>"; } // Display pagination links echo "<div class='pagination'>"; for ($i = 1; $i <= $totalPages; $i++) { $activeClass = ($i == $currentPage) ? 'active' : ''; echo "<a href='?page=" . $i . "' class='" . $activeClass . "'>" . $i . "</a>"; } echo "</div>"; ?> <!DOCTYPE html> <html> <head> <title>Simple Pagination</title> <style> .pagination a { display: inline-block; padding: 8px 12px; margin: 0 4px; text-decoration: none; border: 1px solid #ccc; } .pagination a.active { background-color: #4CAF50; color: white; } </style> </head> <body> </body> </html> </code>
Dieses verbesserte Beispiel beinhaltet:
try-catch
-Block behandelt potenzielle Datenbankverbindungsfehler.filter_input
verwendet wurde, fehlte eine umfassende Validierung. Diese Version stellt sicher, dass die Seitenzahl eine positive Ganzzahl ist und im gültigen Bereich liegt.implode
anpassen, damit er mit den Spaltennamen Ihrer Datenbanktabelle übereinstimmt."your_database"
, "your_user"
, "your_password"
und "your_table"
durch Ihre tatsächlichen Datenbankanmeldeinformationen und Ihren Tabellennamen zu ersetzen.Denken Sie daran, die erforderliche Datenbank und Tabelle zu erstellen, bevor Sie diesen Code ausführen. Dieses erweiterte Beispiel bietet eine robustere und sicherere Lösung für die Paginierung in PHP.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine einfache Datenbank-Paginierung in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!