读取数据库 案例:实现分页

本文详细介绍PHP中如何实现数据库的分页查询,包括连接数据库、执行SQL语句、读取结果集、释放资源和关闭数据库连接的过程。同时,演示了如何使用date函数格式化时间戳,以及设置脚本的默认时区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读取数据库

1.mysqi_result类  :  代表从一个数据库查询中获取的结果集

获取字段个数: int   $field_count

获取记录数:int   $num_rows

从结果集中读取一行,得到索引数组:mixed  fetch_row(void)

从结构集中读取一行,得到关联数组: array  fetch_assoc (void)   使用较多

mixed fetch_array([int $resulttype = MYSQLI -BOTH])

释放结果集 : void  free(void)

2.date   格式化一个本地时间/日期

Y           4位数字完整表示的年份

m          数字表示的月份,有前导零

d           月份中的第几天,有前导零的2位数字

H           小时,24小时格式,有前导零

i              有前导零的分钟数

s              秒数

3.date_default_timezone_set   设置用于一个脚本中所有日期时间函数的默认时区

date_dafault_timezone_set('PRC')    设置北京时间时区

4. $-  SERVER  分页

5.  PHP_SELE   当前访问的文件的文件名

例:

<?php


//设置北京时间
date_default_timezone_set('PRC');


//预定义变量$_GET,该数字存储的是以get方式请求的数据
// print_r($_GET);
const PAGE_SIZE = 2;//每页多少条记录
$page = 1;//默认第一页
if (isset($_GET['page'])) {
	 $page = $_GET['page'];
}

echo $page;
// exit;

//连接数据库
$conn = @new mysqli('sqld-gz.bcehost.com','591672f4864b4da7ad2ce375d3a8214b','1ebbfd82316743b1a1339f0c96671509','auXRMMBgzWLfZHABPvyB');

//检查是否连接失败
if ($conn->connect_error) {
	die('连接数据库失败');
}

//设置编码格式
$conn->set_charset('utf8');

//计算记录总数
$sql = "select count(*) from user";
$result = $conn->query($sql);
$data = $result->fetch_row();
$count = $data[0]; //总记录数

//总页数,取整数(ceil,floor,round)
$page_count = ceil($count/PAGE_SIZE);
// echo $page_count;
// exit;

//page=1,$index=0;page=2,$index=2;page=3,$index=4
$index = ($page-1)* PAGE_SIZE;
//构建sql语句
$sql = "select id,user,create_time from user limit $index," . PAGE_SIZE;


//执行sql指令
$result = $conn->query($sql);

//定义空数组
$arr = array();
//读取结果集
while ($row = $result->fetch_assoc()) {
	$arr[] = $row;
}

$result->free(); //释放结果集

//关闭数据库
$conn->close(); 


?>

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
    //引入
	<link rel="stylesheet" type="text/css" href="./bootstrap-3.3.7-dist/css/bootstrap.min.css">
	<script type="text/javascript" src="./bootstrap-3.3.7-dist/js/jquery-3.3.1.min.js"></script>
	<script type="text/javascript" src="./bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>
<body>
 <div class="container">
   <div class="panel panel-primary">
     <div class="panel-heading">用户列表</div>
	  <table class="table table-bordered table-striped table-hover ">
		<tr>
			<th>用户名</th>
			<th width="250">创建日期</th>
		</tr>
		<?php foreach ($arr as $row) { ?>
		<tr>
			<td><?php echo $row['user'] ?></td>
			<td><?php echo date('Y-m-d H:i:s', $row['create_time'] )?></td>
		</tr>
		<?php } ?>
	</table>
	<!-- 分页 -->
	<nav aria-label="...">
	  <ul class="pager">
	    <?php if ($page-1>0) { ?>
	   	  <li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page-1 ?>">上一页</a></li>
	    <?php } ?>
	   
	   <?php if($page+1<=$page_count){ ?>
	     <li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page+1 ?>">下一页</a></li>
	    <?php } ?>
	  </ul>
	  <div>
	  	 <input type="text" id="page"><input type="button" value="go" id="go">
	  </div>
</nav>
  </div>
 </div>
 <script type="text/javascript">
   $('#go').click(function(event) {
   	  var page = $('#page').val();
   	  var reg = /^\d+$/;
   	  if(reg.test(page) && page >0 ){
   	  	window.location.href= "usser1.php?page="+page;
   	  }else{
   	  	alert('error');
   	  }
   })
 </script>
</body>
</html>

输出结果为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值