您的位置:

php留言板带回复,php留言板模板

本文目录一览:

php留言板的回复怎么做?

首先得设计好数据库,留言一个表,回复一个表,然后把留言表中关键字ID关联到回复表中。

比如:

留言表:message

id

contents

user

time

回复表:reply

id

m_id 关联留言表中的id

contents

user

time

然后程序方面把对应的留言、回复保存到相应的表中,读取的时候先遍历留言表,然后通过留言表id再读取对应的回复数据。

php 留言板 留言和回复

看了你的问题.和数据库的2个表设计.

1.先确定数据表的设计.

留言表 message

字段:

msgid

uid

content

postdate

回复表replies

repliesid

uid

msgid

content

postdate

这样的设计表,我认为是最好的。符合数据库的范式,主要是简单明了,简单就意味着性能.

2.怎么把数据库合理的提取出来,只能说是从代码上着手.

第一种最直接的方法。

$sql = "select * FROM message order postdate desc";

得到$messages留言的数组

foreach ($message as $key = $value) {

$sql = "select * from replies where msgid = ".$value['msgid'];

得到留言对应的回复$replies

$message[$key]['replies'] = $replies;

}

最终得到数组$message;

前台显示:

foreach( $messsage as $key = $value ) {

echo $value[‘content']; //显示留言

foreach( $value['replies'] as $k = $val ) {

echo $val['content'];//显示该留言下的恢复

}

}

第二中方法,我比较喜欢,而且也一直在用

$sql = "select * FROM message order postdate desc";

得到$messages;

通过处理得到,数组$messages中的所有msgid,并存入一维数$msgids

$msgids = array();

$result = array(); //这个数组转化$messages用的.因为我们要把$messages的key值变成msgid

foreach( $message as $key = $value ) {

$msgids[] = $value['msgid'];

$result[$value['msgid']] = $value;

}

unset($messages); 这个数据就没有用了。因为已经有$result;

一次性查询出,这些留言需要的所有回复,$replies;

$sql = "select * from replies WHERE msgid in (".implode(',',$msgids).") order by postdate desc";

foreach( $replies as $key = $value ){

$result[$value['msgid']]['replies'][] = $value;

}

前台显示:

foreach( $resultas $key = $value ) {

echo $value[‘content']; //显示留言

foreach( $value['replies'] as $k = $val ) {

echo $val['content'];//显示该留言下的恢复

}

}

求助,php实现留言板多次回复功能怎么建数据表

加一个 pid 字段,保存回复的上级回复id,若没有回复某条回复就是0

若有 pid 就显示 回复某某~