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>'; } } }