Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已经确认] 经反复检查----删除doing 回复时 数据删除不完整,请官方检查

[复制链接]
C43F 发表于 2009-3-20 15:57:30 | 显示全部楼层 |阅读模式
本帖最后由 茄子 于 2009-3-23 10:09 编辑

请仔细看看这个函数
upid是不一定等于id的
  1. //删除
  2. if($_GET['op'] == 'delete') {
  3.         
  4.         if(submitcheck('deletesubmit')) {
  5.                 if($id) {
  6.                         $allowmanage = checkperm('managedoing');
  7.                         $query = $_SGLOBAL['db']->query("SELECT dc.*, d.uid as duid FROM ".tname('docomment')." dc, ".tname('doing')." d WHERE dc.id='$id' AND dc.doid=d.doid");
  8.                         if($value = $_SGLOBAL['db']->fetch_array($query)) {
  9.                                 if($allowmanage || $value['uid'] == $_SGLOBAL['supe_uid'] ||  $value['duid'] == $_SGLOBAL['supe_uid'] ) {
  10.                                         $_SGLOBAL['db']->query("DELETE FROM ".tname('docomment')." WHERE (id='$id' || upid='$id')");
  11.                                         $replynum = getcount('docomment', array('doid'=>$value['doid']));
  12.                                         updatetable('doing', array('replynum'=>$replynum), array('doid'=>$value['doid']));
  13.                                 }
  14.                         }
  15.                 } else {
  16.                         include_once(S_ROOT.'./source/function_delete.php');
  17.                         deletedoings(array($doid));
  18.                 }
  19.                
  20.                 showmessage('do_success', $_POST['refer'], 0);
  21.         }
  22. }
复制代码
sup 发表于 2009-3-23 10:07:15 | 显示全部楼层
谢谢反馈,确实存在可能删除不干净的问题
这里涉及到递归删除的问题
回复

使用道具 举报

 楼主| C43F 发表于 2009-3-23 12:16:42 | 显示全部楼层
暂时用grade是否大与1来做递归删除
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-10 08:05 , Processed in 0.192970 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表