php给留言分配id_用php+mysql实现带回复功能的留言板(一)

用php加mysql实现留言板的文章倒处是,那我为什么还要在这里写出来呢?有几点原因:

第一:有些文章,解释不够,读者看不懂。第二:这个留言板带有回复功能,分页显示, 及查找。而最重要的一点就是,这个通过这个留言板,读者可以对php+mysql有一个初步的了解,这一点对初学者来说特别重要。至于写论坛也差不了多少,把名字改一下就可以了.

言归正传,让我们来分析一下思路。

三个基本功能就是:回复,分页及查找。

对于回复我们可以用几种方法实现。

第一种就是原始贴(第一次发表的贴)和回复贴放在一个数据库里面。首先我们要有一个自动编号的字段用来唯一区分每贴(假设为id)。再用一个字段表示该贴是回复哪一贴(假设为:rid),它的值为:回复贴的id.当然还少不了留言时间和名字之类的字段,但是最重要的是这两个字段(id,isreply,link).

第二种方法就是原始贴和回复贴分别放在两个表(代表:vb论坛).在原始贴所在表要一个关键的字段id(自动编号).在回复贴要两个关键字段:id(自动编号),rid(回复谁,等于一个原始贴的id).

两种方法各有优缺点:第一种,相对要在查找贴子时好一点.第二种,进行回复贴和原始贴统计时好一点.总的来说第一种要好.在这里我们就选第一种.

分页功能我们也可以有几种方法实现.

第一种利用mysql语句中的limit语句实现,语法为:select * from guestbook limit min,max.然后把结果全部显示出来.

第二种就是选全部.然后利用mysql_data_seek()函数移到指定位置,再读取page条记录.

很显然第一种优势大.我们选第一种.

至于查找.要注意一点的是在mysql中用"_"匹配单个字符,而用"%"匹配任意字符,不向sql_server中用"?"匹配单个字符.而用"*"匹配任意字符.

思路有了后,就动手.

首先我们在mysql中创建一个叫guestbook的表.

sql语句如下:

create table guestbook (

userid varchar(15),

say text,

ttime datetime,

title varchar(20),

click bigint,

rnum bigint,

rid bigint,

id bigint AUTO_INCREMENT not null,

primary key(id)

)

其中userid为姓名.

say为留言内容.为备注型.

ttime为留言时间.

click为点击次数记录

rnum为回复数记录

rid为回复谁

id为自动编号字段.

当然我们还可以加入其它的如电子邮件,个人主页之类的.在这里就省略了.

我们要和登录程序接口.接口如下:

在你登录成功时分配两个session变量:

$session_userid为用户名.没有登录的用户不能留言,及回复.

$session_power为该用户权限,从0到5.0最小,5最大.删除贴子权限为$session_power>=1就可以,你也可以进行更改.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值