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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 官方DV转DZX的转换程序的专集转换部分写得很有问题

[复制链接]
mccad 发表于 2010-11-13 16:53:52 | 显示全部楼层 |阅读模式
  1. $query2 = "UPDATE {$discuz_tablepre}forum_thread SET typeid='$threadtypeid' WHERE fid='$fid' AND typeid='$typeid'";
复制代码
上面是step_11.php第50行的内容。
比如我先转了一个版块中,只有1个专题,那么ID:1就被占用了。
然后我再转第二个版块,有3个专题,在DV中的ID分别是1、2、3。转到DZ中,应该是2、3、4。此时问题就出来了。
程序中,首先会把ID为1的全部改成了,再执行转ID=2时,把原来是2,以及在上一步被转成2的帖子都被转成3,然后,再转3时,就会都被转成4了。
就这样,DV中的1、2、3专题就都被转成DZ中的专题4了。

请官方修改你们的转换程序,解决方法是从大的ID开始转换,再转换小的ID。

 楼主| mccad 发表于 2010-11-13 16:55:41 | 显示全部楼层
我的网站的某个版块,共有19个专题,而其中前10个专题的内容都被归到第11个专题去。
回复

使用道具 举报

 楼主| mccad 发表于 2010-11-13 17:53:38 | 显示全部楼层
我目前的方法是,增加一行:
  1.                 $db['discuz']->query("UPDATE {$discuz_tablepre}forum_thread SET typeid=typeid + 10000 WHERE fid='$fid'");
复制代码
把旧ID全部增加10000,以避免与替换后的ID重复。
在后面更新时,则用
  1.                                 $query2        =        "UPDATE {$discuz_tablepre}forum_thread SET typeid='$threadtypeid' WHERE fid='$fid' AND typeid= 10000 + '$typeid'";
复制代码
来实现替换回去。
回复

使用道具 举报

newliver00700 发表于 2010-11-15 08:45:47 | 显示全部楼层
我发现转换完成后专题的号都不对应了。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 14:27 , Processed in 0.128489 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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