index.php 用于留言板留言数据的读取显示。一般留言都会有较多条,因此从数据库中读取并显示留言时需要用到数据分页。
关键代码片段如下:
// 引用相关文件
require("./conn.php");
require("./config.php");
// 确定当前页数 $p 参数
$p = $_GET['p']?$_GET['p']:1;
// 数据指针
$offset = ($p-1)*$pagesize;
// 查询当前页显示记录 SQL
$query_sql = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $offset , $pagesize";
$result = mysql_query($query_sql);
// 如果出现错误并退出
if(!$result) exit('查询数据错误:'.mysql_error());
// 循环输出当前页显示数据
while($gb_array = mysql_fetch_array($result)){
echo $gb_array['nickname'],' ';
echo '发表于:',date("Y-m-d H:i", $gb_array['createtime']),'<br />';
echo '内容:',nl2br($gb_array['content']),'<br /><hr />';
// 回复
if(!empty($gb_array['replytime'])) {
echo '----------------------------<br />';
echo '管理员回复于:',date("Y-m-d H:i", $gb_array['replytime']),'<br />';
echo nl2br($gb_array['reply']),'<br /><br />';
}
echo '<hr />';
}
// 计算留言页数
$count_result = mysql_query("SELECT count(*) FROM guestbook");
$count_array = mysql_fetch_array($count_result);
$pagenum = ceil($count_array['count(*)']/$pagesize);
// 数据显示
echo '共 ',$count_array['count(*)'],' 条留言';
// 页数 >1 显示分页
if ($pagenum > 1) {
for($i=1;$i<=$pagenum;$i++) {
if($i==$p) {
echo ' [',$i,']';
} else {
echo ' <a href="index.php?p=',$i,'">',$i,'</a>';
}
}
}