conn.php 数据库连接
conn.php 记录着留言板与数据库交互时的连接信息,在我们需要连接操作数据库时,使用 PHP require 语法引用该文件即可,而无需在每个页面都重复该段连接数据库的代码。
该文件具体内容如下:
<?php $conn = @mysql_connect("localhost","root","root123"); if (!$conn){ die("连接数据库失败:" . mysql_error()); } mysql_select_db("test", $conn); // 字符转换,读库 mysql_query("set character set 'gbk'"); // 写库 mysql_query("set names 'gbk'"); ?>
若您将本教程留言板的源代码用于实际的项目,请将上面数据库的相关信息做对应的修改。
config.php 系统配置文件
系统配置文件用于配置一些系统需要的参数,如本例中每页留言显示的数目等:
<?php $pagesize = 3; // 每页显示的留言数,可根据实际情况调节 $gb_password = 123456; // 留言本管理密码,在不做数据库验证时使用 // 其他更多配置参数 ?>
index.php 留言读取显示
index.php 用于留言板留言数据的读取显示。一般留言都会有较多条,因此从数据库中读取并显示留言时需要用到数据分页,如果对数据分页技术还不熟悉,请参阅《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>'; } } }
显示效果
可以在数据库里面手工(利用 phpMyAdmin)写入若干条测试数据以测试显示效果。在保证读取显示无误后,后面设计用户留言入库出现问题时,便可排除是数据读取显示的问题。
运行显示效果如下:
Jack 发表于:2010-09-01 18:18 内容:so good!! -------------------------------------------------------------------------------- 小明 发表于:2010-01-22 22:01 内容:望再接再厉,继续努力做出更大贡献! -------------------------------------------------------------------------------- 路人甲 发表于:2010-01-22 21:41 内容:来看看,很不错啊。 ---------------------------- 管理员回复于:2010-01-22 21:50 欢迎常来! -------------------------------------------------------------------------------- 共 4 条留言 [1] 2
到此已经完成了数据的读取显示,对于将留言板具体的美化细节在此不再展开叙述了,可下载本节教程源代码包中的完善版查看或去本站留言板查看实际效果。