Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Penomboran PHP dan MySQL untuk Set Data Besar?

Bagaimana untuk Melaksanakan Penomboran PHP dan MySQL untuk Set Data Besar?

Barbara Streisand
Barbara Streisandasal
2024-12-04 00:50:10559semak imbas

How to Implement PHP and MySQL Pagination for Large Datasets?

Penomboran PHP dan MySQL

Satu tugas biasa untuk aplikasi web ialah memaparkan set data yang besar dalam format penomboran, membenarkan pengguna melihat bilangan hasil setiap halaman. Ini boleh meningkatkan pengalaman dan prestasi pengguna.

Pertimbangkan pertanyaan MySQL yang mendapatkan semula semua rekod daripada jadual 'ubah hala' yang ditapis oleh ID pengguna:

SELECT * FROM redirect WHERE user_id = '".$_SESSION['user_id']."' ORDER BY 'timestamp'

Untuk menomborkan pertanyaan ini supaya ia menunjukkan 10 hasil setiap halaman, ikuti langkah berikut:

<?php

// Insert your MySQL connection code here

// Set the number of results per page
$perPage = 10;

// Get the current page number from GET request (or default to 1)
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;

// Calculate the starting record for the specified page
$startAt = $perPage * ($page - 1);

// Count the total number of records in the table
$query = "SELECT COUNT(*) as total FROM redirect
WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));

// Calculate the total number of pages
$totalPages = ceil($r['total'] / $perPage);

// Generate the pagination links
$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
  $links .= ($i != $page ) 
            ? "<a href='index.php?page=$i'>Page $i</a> "
            : "$page ";
}

// Execute the paginated query
$r = mysql_query($query);

$query = "SELECT * FROM `redirect`
WHERE `user_id`= '".$_SESSION['user_id']."' 
ORDER BY 'timestamp' LIMIT $startAt, $perPage";

$r = mysql_query($query);

// Display the results using the pagination system
echo $links; // Show links to other pages
?>

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran PHP dan MySQL untuk Set Data Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn