好的,这是我的问题。我正在为我的客户实施一个论坛。该代码是几年前编写的,我正在处理删除功能。
基本上,您有主要主题。人们可以对此发表评论,然后对评论进行评论。
布局如下:
[主要帖子]
[评论A - ID 1 - 家庭创始人]
[评论2 - 父母1 - 身份证2]
[评论3 - 父母1 - 身份证3]
[评论4 - 家长3 - 证件4]
[警告B - 身份证5 - 家庭创始人]
[评论6 - 家长5 - 身份证6]
[评论7 - 家长6 - 证件7]
该表存储此信息如下: ID |家长ID |主题ID |评论内容
目前,它设置为使用两个函数运行 第一个,调用主要注释(注释ID 1),然后在底部,它调用以查看是否有任何注释ID 1的子项然后循环它们等等。尝试解释是令人困惑的。
问题是,我无法跟踪找到的初始系列(A和B,分别为ID 1和5)。
我能想到的唯一方法就是调用一个函数在数据库上进行大量查询,直到子计数为0.存储所有ID然后运行删除查询。
感谢任何帮助。如果我能更好地解释,请告诉我。
答案 0 :(得分:1)
ParentID
实际上是一个外键,所以我添加一个
FOREIGN KEY(ParentID) REFERENCES Comment(id) ON DELETE CASCADE
约束
答案 1 :(得分:0)
我认为你应该再次使用,e.a。一个函数,首先打印parrent,然后搜索所有的孩子,然后为孩子们运行。 这意味着你有以下函数调用:
基本上类似于:
function showPost(int ID) {
#Find record
mysql.runquery ...
#print record
echo '...';
#find children
myql.runquery ...
while (c=mysql.nextrecord()) {
showpost (c.ID);
}
}
删除类似:
function deletePost(int ID) {
#find children
myql.runquery ...
while (c=mysql.nextrecord()) {
deletepost (c.ID);
}
#Then delete himselve.
mysql.run_sql ('delete from table where id = '.ID);
}