分页是文章列表,新闻页中常用的一个功能,我们简单来演示一下PHP中怎么实现分页的功能。
首先是数据库的建立,我们使用数据库工具创建好数据表中的数据
语法很简单
select * from tableName limit num1,num2
这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数
我们大概了解查询语句后就可以写分页函数了
/分页的函数
function news($pageNum = 1, $pageSize = 3)
{
$array = array();
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
// limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
$rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;
$r = mysqli_query($coon, $rs);
while ($obj = mysqli_fetch_object($r)) {
$array[] = $obj;
}
mysqli_close($coon,"jereh");
return $array;
}
pageNum为页数,pageSize为一个页面显示几条数据,在 “select * from tableName limit num1,num2”这个查询语句中,
num1就是(pageNum-1)*pageSize,num2就是pageSize
这里如果函数没有传递默认参数的话,页数应为1,注意查询语句中是从0开始查询的
然后是总数
//显示总页数的函数
function allNews()
{
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
$rs = "select count(*) num from n_content"; //可以显示出总页数
$r = mysqli_query($coon, $rs);
$obj = mysqli_fetch_object($r);
mysqli_close($coon,"jereh");
return $obj->num;
}
下面是 当前页 和总页数 的一个函数 里面有一个三目运算符
@$allNum = allNews();
@$pageSize = 3; //约定每页显示的信息条数
@$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
@$endPage = ceil($allNum/$pageSize); //总页数
@$array = news($pageNum,$pageSize);
?>
列表页循环数组
编号 | 新闻标题 | 来源 | 点击率 | 发布日期 |
foreach($array as $key=>$values){
echo "
";echo "
{$values->id}";echo "
{$values->title}";echo "
{$values->src}";echo "
{$values->indexs}";echo "
{$values->times}";echo "
";}
?>
上一页下一页 可以写一个数组,也可以用以下运算来表示
首页
">上一页
">下一页
">尾页
来看一下总体的代码
html>
分页//分页的函数
function news($pageNum = 1, $pageSize = 3)
{
$array = array();
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
// limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
$rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;
$r = mysqli_query($coon, $rs);
while ($obj = mysqli_fetch_object($r)) {
$array[] = $obj;
}
mysqli_close($coon,"jereh");
return $array;
}
//显示总页数的函数
function allNews()
{
$coon = mysqli_connect("localhost", "root");
mysqli_select_db($coon, "jereh");
mysqli_set_charset($coon, "utf8");
$rs = "select count(*) num from n_content"; //可以显示出总页数
$r = mysqli_query($coon, $rs);
$obj = mysqli_fetch_object($r);
mysqli_close($coon,"jereh");
return $obj->num;
}
@$allNum = allNews();
@$pageSize = 3; //约定没页显示几条信息
@$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
@$endPage = ceil($allNum/$pageSize); //总页数
@$array = news($pageNum,$pageSize);
?>
编号 | 新闻标题 | 来源 | 点击率 | 发布日期 |
foreach($array as $key=>$values){
echo "
";echo "
{$values->id}";echo "
{$values->title}";echo "
{$values->src}";echo "
{$values->indexs}";echo "
{$values->times}";echo "
";}
?>
首页
">上一页
">下一页
">尾页