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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] phpwind 9.0 转换到 X3 版块丢失的问题解决方案

[复制链接]
Arice 发表于 2013-9-7 12:15:47 | 显示全部楼层 |阅读模式
本帖最后由 Arice 于 2013-9-8 20:32 编辑

问题描述
转换后,有些分类丢失,转换版块过程中出现数据库错误提示,类似



问题转换程序
https://discuz.dismall.com/thread-3251327-1-1.html

起因
pw9 如果是新安装的没有这个问题。
pw9 如果不是新安装的,而是从 pw87 升级上来的然后再转换就有这个问题

原理
pw87 中的 pw_forumsextra 表中版块分类并没有数据
pw87 升级到 pw9 后 pw_bbs_forum_extra 中版块分类并没有增加,只是把 pw_forumsextra 的数据添加进来了
然后此时转换 pw9 到 Discuz! X3

打开该转换程序中的
XConver_pw85_87_90_to_X3/data/phpwind/pw90 - 3 X/step_3.php
其中
  1. SELECT f.*, bfs.*, bfe.* FROM {$source_tablepre}bbs_forum f        
  2.                                                                         LEFT JOIN {$source_tablepre}bbs_forum_statistics bfs ON f.fid=bfs.fid
  3.                                                                         LEFT JOIN {$source_tablepre}bbs_forum_extra bfe ON f.fid=bfe.fid
  4.                                                                         ORDER BY f.fid ASC
复制代码
如果将此 sql 放到 phpmyadmin 里查询,如图



因为版块分类没有数据,所以最后取到的 $pwforum[fid] 将会是 null
写入 pre_forum_forum 时 fid 会写成0,如果多个分类没数据,就会出现多条fid 为0 的数据,写入时自然要报 duplicate 的错误了。

解决方案
其实这个地方应该是不需要联 bbs_forum_extra 这个表的,因为在循环中有判断如果 fup 非空,就去查询 bbs_forum_extra
所以把 XConver_pw85_87_90_to_X3/data/phpwind/pw90 - 3 X/step_3.php 中的
  1. $query = $xc->db['source']->query("SELECT f.*, bfs.*, bfe.* FROM {$source_tablepre}bbs_forum f        
  2.                                                                         LEFT JOIN {$source_tablepre}bbs_forum_statistics bfs ON f.fid=bfs.fid
  3.                                                                         LEFT JOIN {$source_tablepre}bbs_forum_extra bfe ON f.fid=bfe.fid
  4.                                                                         ORDER BY f.fid ASC") or dexit();
复制代码
改成
  1. $query = $xc->db['source']->query("SELECT f.*, bfs.* FROM {$source_tablepre}bbs_forum f
  2.         LEFT JOIN {$source_tablepre}bbs_forum_statistics bfs ON f.fid=bfs.fid
  3.         ORDER BY f.fid ASC") or dexit();
复制代码
即可。

补充说明
多表联合查询时,如果字段名有重复的,要注意覆盖关系,或者使用别名。
另外
如果改完之后不是全部重新转换,而是单独转换版块的话,记得转换完版块的后面那一步主题分类也重新转一下。要不然分类就没有了。


http://tkxxd.net/thread-1213-1-1.html 同步发表。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小神猴子 发表于 2013-9-7 12:28:41 | 显示全部楼层
回复

使用道具 举报

福田社区 发表于 2013-9-7 12:37:19 | 显示全部楼层
感谢楼主的帮助!问题已经得到解决!
回复

使用道具 举报

baxter 发表于 2013-9-8 10:52:53 | 显示全部楼层
已经收录,建议更换原转换程序中
回复

使用道具 举报

otherbank 发表于 2013-9-22 15:58:29 | 显示全部楼层
baxter 发表于 2013-9-8 10:52
已经收录,建议更换原转换程序中

感谢大家的反馈,我们会在后续版本中修复
回复

使用道具 举报

ymmt_dz 发表于 2013-9-22 18:47:24 | 显示全部楼层
准备要转换,先看看教程
回复

使用道具 举报

bai_shui 发表于 2013-9-24 08:00:35 | 显示全部楼层
转换板块够了,但是用户图像任然存在问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 15:53 , Processed in 0.032669 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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