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插入数据。