Discuz教程网

[二次开发] Discuz X2帖子数据导入程序

[复制链接]
authicon dly 发表于 2012-11-8 20:33:54 | 显示全部楼层 |阅读模式
  1. <?php
  2. error_reporting(0);

  3. define('UC_CLIENT_VERSION', '1.6.0');
  4. define('UC_CLIENT_RELEASE', '20110501');

  5. define('API_DELETEUSER', 1);
  6. define('API_RENAMEUSER', 1);
  7. define('API_GETTAG', 1);
  8. define('API_SYNLOGIN', 1);
  9. define('API_SYNLOGOUT', 1);
  10. define('API_UPDATEPW', 1);
  11. define('API_UPDATEBADWORDS', 1);
  12. define('API_UPDATEHOSTS', 1);
  13. define('API_UPDATEAPPS', 1);
  14. define('API_UPDATECLIENT', 1);
  15. define('API_UPDATECREDIT', 1);
  16. define('API_GETCREDIT', 1);
  17. define('API_GETCREDITSETTINGS', 1);
  18. define('API_UPDATECREDITSETTINGS', 1);
  19. define('API_ADDFEED', 1);
  20. define('API_RETURN_SUCCEED', '1');
  21. define('API_RETURN_FAILED', '-1');
  22. define('API_RETURN_FORBIDDEN', '1');

  23. @define('IN_DISCUZ', true);
  24. @define('IN_API', true);
  25. @define('CURSCRIPT', 'api');


  26.         define('DISCUZ_ROOT', dirname(dirname(__FILE__)).'/');
  27.         require_once DISCUZ_ROOT.'./config/config_global.php';
  28.         require_once DISCUZ_ROOT.'./config/config_ucenter.php';
  29.         require_once DISCUZ_ROOT.'./source/function/function_core.php';
  30.         require_once DISCUZ_ROOT.'./source/class/class_core.php';

  31.         $discuz = & discuz_core::instance();
  32.         $discuz->init();
  33.        

  34. $_adb = 'a';
  35. $_a_thread = 'pre_forum_thread';
  36. $_a_fid = '77';

  37. $_bdb = 'b';
  38. $_b_thread = 'pre_forum_thread';
  39. $_b_fid = '47';



  40. $_tids='';
  41. $_tarr='';
  42. //----------------------------------------------

  43. $tid_max[tid]=34;
  44. $pid_max[pid]=54;
  45. $aid_max[aid]=27;

  46.         $sql = "SELECT * FROM $_a_thread WHERE fid = '$_a_fid' and displayorder>=0 and tid>0 order by tid asc LIMIT 0 , 1000 ";
  47.         $r = DB::query($sql);
  48.         while($t  = DB::fetch($r)){               
  49.                 $tid = $t[tid];               
  50.                 $t['fid'] = $_b_fid;
  51.                 $t[tid]+=$tid_max[tid];
  52.                 $_tarr[] = $t;       
  53.                 $sql_p  =" SELECT * FROM pre_forum_post WHERE tid = $tid and invisible >=0 ";
  54.                 $r_p = DB::query($sql_p);
  55.                 while($t_p = DB::fetch($r_p)){
  56.                         $pid = $t_p[pid];                               
  57.                         $t_p[pid]+=$pid_max[pid];       
  58.                         $t_p['fid'] = $_b_fid;
  59.                         $t_p[tid] = $t[tid];       
  60.                         unset($t_p['hidepost']);
  61.                         unset($t_p['wnmessagepost']);
  62.                         unset($t_p['bonused']);
  63.                         $_parr[] = $t_p;
  64.                         $sql_a = "SELECT * FROM  pre_forum_attachment WHERE pid=$pid";
  65.                         $r_a = DB::query($sql_a);
  66.                         while($t_a = DB::fetch($r_a)){
  67.                                 $aid = $t_a[aid];
  68.                                 $tableids = $t_a[tableid];
  69.                                 $t_a[aid]+=$aid_max[aid];                                       
  70.                                 $t_a[tid] = $t[tid];
  71.                                 $t_a[pid] = $t_p[pid];       
  72.                                
  73.                                
  74.                                 $tableid = substr($t[tid],-1,1);                               
  75.                                 $t_a[tableid] = $tableid;       
  76.                                
  77.                                 $_aarr[] = $t_a;
  78.                                
  79.                                 $sql_as = "SELECT * FROM  pre_forum_attachment_$tableids WHERE aid=$aid";
  80.                                 $t_as = DB::fetch_first($sql_as);
  81.                        
  82.                                 $t_as[aid]+=$aid_max[aid];                                       
  83.                                 $t_as[tid] = $t[tid];
  84.                                 $t_as[pid] = $t_p[pid];       
  85.                                
  86.                                 $_asarr[$tableid][] = $t_as;
  87.                         }
  88.                 }
  89.         }

  90. foreach($_tarr as $key => $value)
  91. {
  92.         $sql = "INSERT INTO  `$_bdb`.pre_forum_thread set" ;
  93.         foreach( $value as $k => $v)
  94.         {
  95.         $sql .=        "`$k`='".addslashes($v)."',";
  96.         }
  97.         $sql=substr($sql,0,-1);       
  98.         DB::query($sql);
  99.        
  100.         echo $value[tid]-$tid_max[tid].'
  101. ';
  102. }


  103. foreach($_parr as $key=>$value){
  104.         $sql = "INSERT INTO  `$_bdb`.pre_forum_post set" ;        
  105.         foreach($value as $k=>$v){
  106.                 $sql .=        "`$k`='".addslashes($v)."',";
  107.         }
  108.         $sql =substr($sql,0,-1);
  109.         DB::query($sql);
  110. }

  111. foreach($_aarr as $key=>$value){
  112.         $sql = "INSERT INTO  `$_bdb`.pre_forum_attachment set" ;        
  113.         foreach($value as $k=>$v){
  114.                 $sql .=        "`$k`='".addslashes($v)."',";
  115.         }
  116.         $sql =substr($sql,0,-1);
  117.         DB::query($sql);
  118. }
  119. foreach($_asarr as $key=>$value){               
  120.         foreach($_asarr[$key] as $k_as=>$v_as){       
  121.                 $sql = "INSERT INTO  `$_bdb`.pre_forum_attachment_$key set" ;
  122.                 foreach($v_as as $k=>$v){
  123.                         $sql .=        "`$k`='".addslashes($v)."',";
  124.                 }
  125.                 $sql =substr($sql,0,-1);
  126.                 DB::query($sql);
  127.         }
  128. }

  129. echo $tid_max[tid].'插入完毕
  130. ';

  131. ?>
复制代码



上一篇:Discuz 7.2 您的标题超过 80 个字符,解决办法
下一篇:Discuz X2 pre_forum_attachment_{0-9}附件表的选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 05:37

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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