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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] X3 楼层错乱临时解决方案

[复制链接]
lusir 发表于 2013-7-16 22:04:16 | 显示全部楼层 |阅读模式
本帖最后由 lusir 于 2013-7-16 22:07 编辑

楼层错误问题好烦人。

经分析,发现在 pre_forum_post中有两个主键,一个是Tid,一个position。可能是升级没有处理好,导致Position中的值不正确。观看如下结果:
SELECTpid,fid,tid,first,,dateline,FROM_UNIXTIME(dateline) as sj,position FROM `pre_forum_post`where tid=155346 order by dateline;
发现,可以按时间升序排列来修正此错误。
因此可以做如下简单处理以解决楼层错乱问题
1、后台关闭网站,以防在处理期间有人发帖子。
2、修改表中关键字,将Position的主键和自动增长取消。保存。
3、执行如下程序:
<?php
@set_time_limit(0);
//connection to db
$mysql_server_name='localhost';
$mysql_username='root';   //改成自己的用户名
$mysql_password='12345678';  //改成自己的密码
$mysql_database='dbname';  //改成自己的数据库名字
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
mysql_select_db($mysql_database,$conn);
$table_name="pre_forum_post";   //改成自己的数据表名称

//to correct the error on floors in topics
$sql = "SELECT tid FROM $table_nameWHERE first=1 AND position>1";
$result=mysql_query($sql,$conn);
while ($row=mysql_fetch_array($result))
{
       $n=1;
       $sql="selectpid from $table_name where tid=" . $row["tid"] . " order bydateline asc";
       $rs=mysql_query($sql,$conn);
       while($r=mysql_fetch_array($rs))
       {
          $sql="update $table_name setposition=" . $n . " where pid=" . $r["pid"];
          mysql_query($sql);
          $n++;
       }//end while $r
       mysql_free_result($rs);
} // end while $row
echo "<br>done with records:" . mysql_num_rows($result);
mysql_free_result($result);
mysql_close($conn);
?>

楼层错误数量多的,可以分批执行。
水平有限,程序执行效率不高,希望大能来指导。

4、恢复数据表Pre_forum_post中Position为主键、自增

刷新有问题的页面,发现已解决。

以上方案,仅供参考。

可以确认是官方升级文件存在Bug。希望官方能及早给出更好的解决方案。

本帖子中包含更多资源

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

x
babyfacer 发表于 2013-7-17 09:50:37 | 显示全部楼层
官方以前有解决方案的

升级个别案例会出现这样的情况
回复

使用道具 举报

qdaa888 发表于 2013-8-24 09:52:48 | 显示全部楼层
我的也是这问题,2.0升级到3.0出现的,以前有2.5的解决方案,不知道3.0能不能用了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 01:20 , Processed in 0.025065 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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