如何用php将数据库中数据在页面上分页显示
实现它的分页显示主要用到了sql语句limit 限制它的显示条数
下面代码中有解释说明:(查看注释)
<?php
$link=mysqli_connect("localhost","root","root"); //链接数据库
mysqli_select_db($link,"test");
mysqli_query($link,"set names 'utf8'"); //设置字符集
$str1 = "select count(id) as count from stu"; //数据库查询语句
$result1 = mysqli_query($link,$str1);
$row1 = mysqli_fetch_row($result1); //将结果以数组的形式反馈给result1
$count = $row1[0];
$endpage = ceil($count/3);
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page =1;
}
$str = "select * from stu"; //查询语句在stu中进行查询
if($page!="")
{
$str .= " limit ".(($page-1)*3).",3"; //设置数据的条数
}
$result = mysqli_query($link,$str);
$arr = array();
while($row = mysqli_fetch_array($result)) {
$arr[]=$row;
}
mysqli_close($link);
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function front()
{
var page=parseInt("<?php echo $page?>");
if(page!=1)
{
page-=1;
}
window.location.href="?page="+page;
}
function next()
{
var page=parseInt("<?php echo $page;?>");
var endpage = parseInt("<?php echo $endpage;?>");
if(page!=endpage)
{
page+=1;
}
window.location.href="?page="+page;
}
</script>
<style>
table,td
{
border: 1px solid #000;
}
</style>
</head>
<body>
<table cellpadding="1" spacpadding="1">
<tr>
<th>id</th>
<th>姓名</th>
<th>年龄</th>
<th>专业</th>
<th>班级</th>
</tr>
<?php
foreach ($arr as $key => $value)
{
?>
<tr>
<td><?php echo $value[0];?></td>
<td><?php echo $value[1];?></td>
<td><?php echo $value[2];?></td>
<td><?php echo $value[3];?></td>
<td><?php echo $value[4];?></td>
</tr>
<?php }?>
</table>
<a href="?page=1">首页</a>
<a href="javascript:;" onclick="front()">上一页</a>
<a href="javascript:;" onclick="next()">下一页</a>
<a href="?page=<?php echo $endpage;?>">尾页</a>
</body>
</html>
可能用到的知识点:
首先这边用到GET方法
1.从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
2.预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。
在 HTML 表单中使用 method=“get” 时,所有的变量名和值都会显示在 URL 中。
注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!
然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。