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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转换] 请教,转换后的贴子与人员关联问题

[复制链接]
998w 发表于 2007-1-29 10:29:44 | 显示全部楼层
原帖由 雪忧 于 2007-1-28 18:16 发表
几位大哥大姐,帮我解决一下问题啊,很小很小的一个问题哈...

https://discuz.dismall.com/thread-520719-1-1.html

麻烦帮我解答解答吧,OK~



你的这个问题,对我来说有点难度,呵呵!
不过,我觉得你这个问题应该可以试试用户ID合并,但是你删除了以前的那个ID,所以他发的帖子都变成了匿名或者是游客,不知道合并用户ID能不能行,还需要你自己测试!

另外请你参照一下这个:



不小心删除掉了一个用户,这样恢复!



首先申明:专为没有phpmyadmin工具或者懒得用工具的人提供。这句sql是需要根据你的实际情况作一些修改的,不是拿来就用

  1. INSERT INTO cdb_members (uid,username) VALUES((SELECT authorid FROM cdb_threads WHERE author='春风一度' AND tid='664'),'春风一度')
复制代码

首先看我的说明,看懂了再搞。

这里 春风一度 要替换成你不小心删掉的会员的用户名。(细心些,共两处)
tid='664'中的664替换成这个会员发的一个主题的id,任意找一个就可以。主要是想取得主题表里记录的用户uid

修改好以后就可以执行了,就在后在的升级数据库那里就可以了。
之后在后台的编辑用户里查找到这个用户,把他的资料编辑一下。
ok 大功告成。通知这个用户。他的新的信息。

有什么问题在此发帖探讨
当然这句中的
SELECT authorid FROM cdb_threads WHERE author='春风一度' AND tid='664'
也可以换成
SELECT authorid FROM cdb_posts WHERE author='春风一度' AND pid='664'
意思就是如果这个会员没有发过主题,但是有发表过回复,那我们就用下面的这句,从cdb_posts表中来获得用户的uid.
当然此时的pid='664'中的664就是该用户发表过的贴子的pid,这个可以通过浏览该会员的帖子得到。
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 11:15:22 | 显示全部楼层
原帖由 ejew 于 2007-1-29 09:49 发表
我给你的sql跟MSSQL关鸟事啊
自己没没弄明白别说人家给的方法没用
上面说的很清楚了,单一改用户上面sql在后台升级下可处理,
你的设想:“把2007-01-26前的所有游客的主人都变成新注册这个用户ID的主人,”
...



我无语....

我总共在本贴提了两个问题,一个是有一会员在转换的时候被删除,所有贴子变成游客贴

现需要将他的贴子转到新注册的一个会员身上,你说的是要用程序来实现

第二个问题我是说在转换的时候所有的注册日期均被改变,我要恢复成原注册日期,如果不针对原mssql(转换前的数据库)进行关联,注册日期又从哪儿获得?不关MSSQL的事,那我怎么去更新mysql中我现在用的数据库的注册日期为正确的注册日期?

真的郁闷呢...
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 11:18:21 | 显示全部楼层
谢谢998w

我先试试,非常感谢!


同时也谢谢ejew,不好意思,给你添麻烦了....

我只是不想丢失会员,真的对不起...
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 11:48:06 | 显示全部楼层
回998w的话,首先感谢你的回复和帮助

我的是在转换过程中直接就把该用户删除了的,而后新增了该用户(已经新增),现在是要将他以前的贴子和他现在的uid建立关联


UPDATE cdb_members set uid=(select authorid from cdb_threads where tid='664')
where username='春风一度'

这样可以吗?
回复

使用道具 举报

998w 发表于 2007-1-29 12:19:27 | 显示全部楼层
对,你应该注意的是将ID和用户名对应起来,自己仔细看下说明!!!
回复

使用道具 举报

998w 发表于 2007-1-29 12:21:49 | 显示全部楼层
tid=664是代表主题ID
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 12:27:47 | 显示全部楼层
  1. update cdb_threads set authorid =(select authorid from cdb_members where username='春风一度

  2. '),author='春风一度' where author='春风一度' or (authorid=0 and dateline <'2007-01-26')

  3. update cdb_posts set authorid =(select authorid from cdb_members where username='婚礼_葬

  4. 礼'),author='春风一度' where author='春风一度' or (authorid=0 and dateline <'2007-01-26')

  5. update cdb_pms set msgfromid =(select authorid from cdb_members where username='婚礼_葬

  6. 礼'),msgfrom='春风一度' where msgfrom='春风一度' or (msgfromid=0 and dateline <'2007-01-

  7. 26')

  8. update cdb_pms set msgtoid =(select authorid from cdb_members where username='春风一度')

  9. where msgfromid=0
复制代码
然后这样,可以不??
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 12:29:53 | 显示全部楼层
原帖由 998w 于 2007-1-29 12:19 发表
对,你应该注意的是将ID和用户名对应起来,自己仔细看下说明!!!



好像我上面的执行弄错了

因为在转换的时候哪个用户名已经被删

我更改的authorid好像也变成了游客的值0 了,现在怎么办啊??
  晕S了
回复

使用道具 举报

 楼主| 雪忧 发表于 2007-1-29 12:31:50 | 显示全部楼层
而且因为新用户在以后又有过发贴,因为没有更改主题表回复表的内容,现在显示的本身是他发的贴的记录上,也显示被删除了,晕哦
回复

使用道具 举报

998w 发表于 2007-1-29 13:37:55 | 显示全部楼层
这个问题你就要请教高手了,我也晕
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 10:20 , Processed in 0.046711 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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