简明现代魔法 -> PHP服务器脚本 -> PHP分页显示设计
PHP分页显示设计
2009-09-17
连接数据库的代码 conn.php
为什么一个分页的程序要分开3个文件写呢?主要是出于易于维护考虑。把整个网站需要连接数据库的页面都调用conn.php,那么如果需要换数据库,只要修改conn.php这个文件就可以了,而不用寻找全站还有哪些地方需要修改数据库连接。这也是表现与结构相分离的一种做法。
<?php
//连接到本地MySQL数据库
$myconn=mysql_connect("localhost","root","");
//选择info为操作对象数据库
mysql_select_db("nowamagic",$myconn);
?>
产生分页的代码 pages.php
<?php
//查询数据库中一共有多少条数据
$Total = $total[0];
if($_GET['page']=="")
{
$page=1;
}
else
{
$page=$_GET['page'];
}
//获得当前页
$startnum = ($page-1)*$perpagenum;//每页的其实位置
if($page>1)
$per=$page-1;
else
$per=1;
if($Total%$perpagenum==0)
$Totalpage=$Total/$perpagenum;
else
$Totalpage=(integer)($Total/$perpagenum)+1;
$next=$page+1;
if($next>=$Totalpage)
$next=$Totalpage;
?>
<?php
$xian="<a href='".$_SERVER['PHP_SELF']."'>首页</a>"."<a href='".$_SERVER['PHP_SELF'].'?page='.$per."'> 上一页</a>".
"<a href='".$_SERVER['PHP_SELF'].'?page='.$next."'> 下一页</a>".
"<a href='".$_SERVER['PHP_SELF'].'?page='.$Totalpage."'> 尾页</a>".
" 第".$page."/".$Totalpage."页 ".
" 共".$Total."条信息";
?>
分页显示代码 list.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="css/style.css" rel="stylesheet" type="text/css" />
<?php
include("conn.php");
$perpagenum =20;//定义每页显示几条
$total = mysql_fetch_array(mysql_query("select count(*) from article")); //查询中条数
include("pages.php");
$query=mysql_query("select * from article limit $startnum,$perpagenum") ;
$i=$perpagenum*($page-1)+1;
while($myrow = mysql_fetch_array($query)){
?>
<table width="600" border="0">
<tr>
<td width="30"><img src="../images/topicnew.gif" /></td>
<td width="160"><? echo $myrow["article_date"] ?></td>
<td width="410"><a href="../<? echo $myrow["article_category"] ?>/<? echo $myrow["article_filename"] ?>" target="_blank"><? echo $myrow["article_title"] ?></a></td>
</tr>
</table>
<? }
?>
</table>
<p> </p>
<p>
<?php
echo $xian;
?>
</p>

