好惨,今天看了转换后的论坛,发现投票并没有转换过来。
只能慢慢查转换程序,目前发现三个地方有错误,根本这个转换过程就无法转换到数据,不知官方有没有调试过程序就放出来。
step_7.php文件:
1.第12行:
$query = "SELECT * FROM {$source_tablepre}vote WHERE voteid BETWEEN $start AND $end";
应改为:
$query = $db['source']->query("SELECT * FROM {$source_tablepre}vote WHERE voteid BETWEEN $start AND $end");
2.第16行:
$t_query = $db['source']->fetch_assoc("SELECT topicid FROM {$source_tablepre}topic WHERE pollid=$dvpoll[voteid]");
应改为:
$t_query = $db['source']->query("SELECT topicid FROM {$source_tablepre}topic WHERE pollid=$dvpoll[voteid]");
3.大约47行:
$rs2 = $db['source']->execute("SELECT * FROM {$source_tablepre}voteuser WHERE voteid=$dvpoll[voteid] AND (voteoption='$key' OR LEFT(voteoption, 2)='$key,' OR LEFT(voteoption, 3)='$key,' OR INSTR(',$key,', voteoption) OR RIGHT(voteoption, 2)=',$key' OR RIGHT(voteoption, 3)=',$key')");
这一步还没找到办法,因为mssql的类里db.class.php并没有execute方法,而直接复制ACCESS中的该方法也错。再找找方法吧。
另外,对于DV论坛来说,投票项目最多只能设置10项,即编号为0-9,所以,后面的判断也不需要那么复杂,只需要
"SELECT * FROM {$source_tablepre}voteuser WHERE voteid=$dvpoll[voteid] AND (voteoption='$key' OR INSTR('$key', voteoption))"
就够了。
|