首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » ASP论坛转discuz!PHP论坛研究三  


  作者:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2005-07-11 19:53:53 阅读 2402 次 回复 1 次 得分1  |   字号 字色
ASP论坛转discuz!PHP论坛研究三
------------------------------------------------
阅读本文前请首先阅读
http://www.17php.com/bbs/show_title.php?id=1181
http://www.17php.com/bbs/show_title.php?id=1182
------------------------------------------------
接上文:
转换所有帖子
conv_title.php


<?php
//Written by www.17php.com
//welcome to bbs.17php.com

$myid=mysql_connect("localhost","root","1234");
mysql_select_db("discuz2",$myid);
$id=odbc_connect("bbs","","");
echo "->连接到mysql数据库成功!<br>";

echo "->准备构建一个临时表(该表为转换临时所用,转换完成后会自动删除,请勿手工删除)<br>";
mysql_query("drop table temptable2");
mysql_query("create table temptable2(befores int(4),afters int(4))");
echo "->临时表temptable2创建成功<br>";

if(!$id){
    echo "<font color=red>->无法连接到ACCESS数据库</font><br>";
    exit;
    }else{
    echo "->连接到ACCESS数据源成功!<br>";
 if($result=odbc_exec($id,"select * from Forum_Topic")){
 echo "->准备转换论坛主题表:<br><font color=red>转换时间取决于数据量大小,如时间较长请耐心等待</font><br>";
 $i=0;
 $k=0;
 echo " ->1、直接拷贝数据:<br>";
 while(odbc_fetch_row($result)){

    $sql="insert into cdb_threads values('',";    //tid
    $sql.="'".odbc_result($result,"Forum_ID")."',";   //fid
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'".odbc_result($result,"T_AUTHOR")."',";    //作者
    $sql.="'".odbc_result($result,"T_SUBJECT")."',"; //subject
    $sql.="'".strtotime(odbc_result($result,"T_Posttime"))."',";
    $sql.="'".strtotime(odbc_result($result,"T_DATE"))."',";
    $sql.="'".odbc_result($result,"T_LAST_POSTER")."',";
    $sql.="'".odbc_result($result,"T_VIEW_COUNT")."',";
    $sql.="'".odbc_result($result,"T_Reply_Count")."',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'".odbc_result($result,"TOPIC_ID")."',";
    $sql.="'',";
    $sql.="''";
    $sql.=")";
    mysql_query($sql,$myid);
    

    $sql="insert into cdb_posts values('',";    //fid
    $sql.="'".odbc_result($result,"TOPIC_ID")."',"; //tid
    $sql.="'',";    //pid
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'".odbc_result($result,"T_AUTHOR")."',"; //AUTHOR
    $sql.="'".odbc_result($result,"T_SUBJECT")."',";    //subject
    $sql.="'".strtotime(odbc_result($result,"T_Posttime"))."',";
    $sql.="'".odbc_result($result,"T_MESSAGE")."',";
    $sql.="'".odbc_result($result,"T_IP")."',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0'";
    $sql.=")";
    mysql_query($sql,$myid);
    
    $sql="select * from cdb_threads where closed='".odbc_result($result,"TOPIC_ID")."'";
    $tst1=mysql_query($sql,$myid);
    $tst2=mysql_fetch_array($tst1,MYSQL_ASSOC);
    

    $sql="insert into temptable2 values(".odbc_result($result,"TOPIC_ID").",".$tst2["tid"].")";
    mysql_query($sql,$myid);
    if(($i%500)==0){
    $k=$k+1;
    echo "<br>>>完成:500×".$k.":";
    }
    $i=$i+1;
 }
   mysql_query("update cdb_threads set closed=''");
   echo "<br>共转换主题:".$i."条。<br>";
   echo " ->2、开始按照临时表内容进行数据一致性对齐操作:<br>";
   $sql="select * from temptable";
   $rrr=mysql_query($sql);
   while($rrr2=mysql_fetch_array($rrr,MYSQL_ASSOC)){
   $sql="update cdb_threads set fid=".$rrr2["afters"]." where fid=".$rrr2["befores"];
   mysql_query($sql);
 echo "  ->、原来id为".$rrr2["befores"]."的板块内容已经对齐到新板块".$rrr2["afters"]."<br>";
   }
   
   
 echo "<br>---->准备统计目前各板块的主题、回复数";
   $sql="select fid,count(*) as counts from cdb_threads group by fid";
   $t853=mysql_query($sql);
   while($t85=mysql_fetch_array($t853,MYSQL_ASSOC)){
   $sql="update cdb_forums set threads=".$t85["counts"]." where fid=".$t85["fid"];
   mysql_query($sql);
   echo "板块".$t85["fid"]."主题数".$t85["counts"]."设置成功!<br>";
   }
   echo "<br>---->各板块的主题数更新成功!";
   
   
   
 echo "全部转换工作完成,删除以前创建的临时表temptable....<br>";
 mysql_query("drop table temptable");
 echo "删除temptable成功,全部主题转换完毕<br>";
 }else{
   echo "->access数据库查询失败!";
   exit;
 }
    }

?>
(未完待续)
 
 1#楼  
 
  回复人:gnome
  注册时间:2008-09-20
  主题/回复:0/1
  积分:22
  等级:★(二级)
  称号:初出茅庐

用户联系方式已设置为保密
 1#楼 发表于2008-09-20 12:47:48  评分:1 

回复给楼主(一起PHP)
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.011sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版