ITPub博客

首页 > 应用开发 > Html/css > PHP MySQL数据分页

PHP MySQL数据分页

原创 Html/css 作者:web全栈 时间:2019-09-24 10:59:46 0 删除 编辑

SQL SELECT语句查询总是可能导致数千条记录。但是在一个页面上显示所有结果并不是一个好主意。因此,我们可以根据要求将此结果划分为多个页面。分页意味着在多个页面中显示您的查询结果,而不是仅将它们全部放在一个长页面中。MySQL通过使用LIMIT子句帮助生成分页,该子句将采用两个参数。第一个参数为OFFSET,第二个参数应从数据库返回多少条记录。下面是一个使用LIMIT子句获取记录以生成分页的简单示例。

$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);

修改每页显示的数据或者插入多条数据查看效果, PHP MySQL插入数据。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69942367/viewspace-2658038/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: PHP文件上传
请登录后发表评论 登录
全部评论

注册时间:2019-07-26

  • 博文量
    49
  • 访问量
    30024