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