SQL SELECT語句查詢總是可能導致數千條記錄。但是在一個頁面上顯示所有結果並不是一個好主意。因此,我們可以根據要求將此結果劃分爲多個頁面。分頁意味着在多個頁面中顯示您的查詢結果,而不是僅將它們全部放在一個長頁面中。MySQL通過使用LIMIT子句幫助生成分頁,該子句將採用兩個參數。第一個參數爲OFFSET,第二個參數應從數據庫返回多少條記錄。下面是一個使用LIMIT子句獲取記錄以生成分頁的簡單示例。
<html>
<head>
<title>PHP分頁</title>
</head>
<body>
<?php
$dbhost = 'localhost'; // 數據庫主機
$dbuser = 'root'; // 用戶名
$dbpass = '123456'; // 密碼
$rec_limit = 10; // 每頁10條數據
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('連接失敗: ' . mysqli_error());
}
mysqli_select_db($conn,'test'); // 要操作的數據
/* 獲取所有的記錄數 */
$sql = "SELECT COUNT(id) FROM test ";
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('沒有獲取到數據: ' . mysqli_error($conn));
}
$row = mysqli_fetch_array($retval, MYSQLI_NUM );
$rec_count = $row[0];
if( isset($_GET['page'] ) ) {
$page = $_GET['page'] + 1;
$offset = $rec_limit * $page ;
}else {
$page = 0;
$offset = 0;
}
$left_rec = $rec_count - ($page * $rec_limit);
$sql = "SELECT name ".
"FROM test ".
"LIMIT $offset, $rec_limit";
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('不能獲取到數據: ' . mysqli_error($conn));
}
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) {
echo "TEST name :{$row['name']} <br> ";
}
if( $page > 0 ) {
$last = $page - 2;
echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$last\">上一頁</a> |";
echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$page\">下一頁</a>";
}else if( $page == 0 ) {
echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$page\">下一頁</a>";
}else if( $left_rec < $rec_limit ) {
$last = $page - 2;
echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$last\">最後一頁</a>";
}
mysqli_close($conn);
?>
</body>
</html>
修改每頁顯示的數據或者插入多條數據查看效果,PHP MySQL插入數據。