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


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

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2005-07-11 19:54:25 阅读 2395 次 回复 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
http://www.17php.com/bbs/show_title.php?id=1183
------------------------------------------------
接上文:
转换全部回复:
<?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>";

if(!$id){
    echo "<font color=red>->无法连接到ACCESS数据库</font><br>";
    exit;
    }else{
    echo "->连接到ACCESS数据源成功!<br>";
 if($result=odbc_exec($id,"select * from Forum_Reply")){
 echo "->准备转换论坛回复表:<br><font color=red>转换时间取决于数据量大小,如时间较长请耐心等待</font><br>";
 $i=0;
 $k=0;
 echo " ->1、直接拷贝数据:<br>";
 while(odbc_fetch_row($result)){
    $sql="insert into cdb_posts values('',";    //fid
    $sql.="'".odbc_result($result,"TOPIC_ID")."',"; //tid
    $sql.="'',";    //pid
    $sql.="'0',";
    $sql.="'',";    //icon
    $sql.="'".odbc_result($result,"R_AUTHOR")."',"; //AUTHOR
    $sql.="'',";    //subject
    $sql.="'".strtotime(odbc_result($result,"T_DATE"))."',";
    $sql.="'".odbc_result($result,"R_MESSAGE")."',";
    $sql.="'".odbc_result($result,"R_IP")."',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0',";
    $sql.="'0'";
    $sql.=")";
    mysql_query($sql,$myid);
    if(($i%2000)==0){
    $k=$k+1;
    echo "<br>>>完成:2000×".$k;
    }
    $i=$i+1;

 }
   echo "<br>共转换回复:".$i."条。<br>";
   echo " ->2、开始按照临时表2内容进行数据一致性对齐操作:<br>";
   $i=0;
   $k=0;
   $sql="select * from temptable2";
   $rrr=mysql_query($sql,$myid);
   while($rrr2=mysql_fetch_array($rrr,MYSQL_ASSOC)){
   $i++;
   $sql="update cdb_posts set tid=".$rrr2["afters"]." where tid=".$rrr2["befores"];
   mysql_query($sql,$myid);
   if(($i%500)==0){
    $k=$k+1;
    echo "<br>--->>完成:500×".$k."<br>";
    }
   }
   
 echo " ->3、开始进行数据一致性补充对齐操作:<br>";

   $sql="select * from cdb_threads";
   $rrr=mysql_query($sql,$myid);
   $i=0;
   $k=0;
   while($rrr2=mysql_fetch_array($rrr,MYSQL_ASSOC)){
   $i++;
   $sql="update cdb_posts set fid=".$rrr2["fid"]." where tid=".$rrr2["tid"];
   mysql_query($sql,$myid);
    if(($i%500)==0){
    $k=$k+1;
    echo "<br>-->>完成:500×".$k."<br>";
    }
   }
  echo " ->4、开始进行数据一致性补充对齐操作(统计各板块回复数):<br>";

   $sql="select fid,count(*) as counts from cdb_posts group by fid";
   $rrrr=mysql_query($sql,$myid);
   while($rrr22=mysql_fetch_array($rrrr,MYSQL_ASSOC)){
   $sql="update cdb_forums set posts=threads+".$rrr22["counts"]." where fid=".$rrr22["fid"];
   mysql_query($sql,$myid);
   echo "板块".$rrr22["fid"]."的回复".$rrr22["counts"]."条设置完毕。<br>";
   }
   
 echo "全部回复转换工作完成!<br>";
 }else{
   echo "->access数据库查询失败!";
   exit;
 }
    }

?>

(全文完!)
 
 1#楼  
 
  回复人:cykk
  注册时间:2004-12-30
  主题/回复:41/99
  积分:688
  等级:★★★(六级)
  称号:声名鹊起

   
 1#楼 发表于2005-07-12 06:51:23  评分:1 

  看完了,看得懂一些,但是还是有些不是很明白!叫我写决对写不出!不懂从哪开始!
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

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