在做项目的时候需要一个分页的功能,感觉还是需要的蛮多的,所以在Model-1的模式下,对分页逻辑的设计相对还是比较简单的。
需要注意的方面是:1;接收用户的输入,建议同一种提交方法。
2:建议数据的接口用同一个,便于管理
3:逻辑的处理一定要合理。
4:采用分层的思想方法更有利于开发。
下面是分页逻辑的具体代码:
<?php
$conn=mysql_connect("localhost","root","toor");
mysql_query("set names utf-8");
mysql_select_db("empmanage",$conn);
$pageNow=1;
$pageCount=0;
$pageSize=10;
$rowCount=0;
$sql="select count(id) from emp";
$res1=mysql_query($sql);
if($row=mysql_fetch_row($res1)){
$rowCount=$row[0];//取出共有多少行数据
}
$pageCount=ceil($rowCount/$pageSize);//计算共有多少页
/********************************************************这里就是一个分页引擎*********************************/
$pageNow=$_GET['pageNow'];
//判断用户是否为首次进入页面,是默认第一页
if(empty($pageNow)){
$pageNow=1;
}
/**************************************************************END***********************************************/
/*********************************************************显示系统*********************************************/
$sql="select * from emp limit ".($pageNow-1)*$pageSize.",$pageSize";
$res2=mysql_query($sql,$conn);
/*数据内嵌到表格**********************/
echo "<table width='700px' align='center' border='1px' cellpadding='10px' cellspacing='0px'>";
echo "<tr><th>id</th><th>name</th><th>garde</th><th>email</th><th>salary</th><th>修改用户</th><th>删除该用户</th></tr>";
while($row=mysql_fetch_assoc($res2)){
echo "<tr align='center'><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['garde']}</td><td>{$row['email']}</td><td>{$row['salary']}</td>"
."<td><a href='#???'>修改用户</a></td><td><a href='#???'>删除该用户</a></td></tr>";
}
echo "</table>";
/****************************************************************END************************************************/
/*
for($i=1; $i<=$pageCount; $i++){
echo "<a href='empList.php?pageNow=$i'>".$i."页"."</a>";
echo " ";
}*/
/****************************************************************分页区选项*******************************************/
echo "<a href='empList.php?pageNow=1'>首页</a> ";
if($pageNow>1){
$prepage=$pageNow-1;
echo "<a href='empList.php?pageNow=$prepage'>上一页</a> ";
}
if($pageNow<$pageCount){
$nextpage=$pageNow+1;
echo "<a href='empList.php?pageNow=$nextpage'>下一页</a> ";
}
echo "<a href='empList.php?pageNow=$pageCount'>尾页</a> ";
$pageNowCut=$pageNow-$pageSize;
echo "<a href='empList.php?pageNow=$pageNowCut'><<</a> ";
//这里犯了一个错误,其实在这里显示的size个数与连接内容已经存在关系,不必继续判断
for($i=1; $i <= $pageSize; $i++){
$pageNum=$i+$pageNow;
if($pageNum<=$pageCount){
echo "<a href='empList.php?pageNow=$pageNum'>"."[$pageNum]"."页"."</a>";
echo " ";
}
}
$pageNowAdd=$pageNow-$pageSize;
echo "<a href='empList.php?pageNow=$pageNowAdd'>>></a> ";
echo "当前页".$pageNow."/共有".$pageCount."页";
echo "<br/><br/><br/>";
?>
<!-- 经测试,提交方式必须为GET,与上面同一个地方接收,也不会发生逻辑混乱 -->
<form action="empList" method="GET">
跳转到<input type="text" name="pageNow">
<input type="submit" value="GO">
</form>
<!-- *********************************************************************END******************************* -->
<?php
mysql_free_result($res2);
mysql_close($conn);
?>