没有把你的程序全部看通,不过初看,FOR一段程序应该如下: for($i=1;$i<=$sql->Rows;$i++)
{
$info[maxindex]+=1;
$sql->insert("insert into volume (film_index,film_id,media_name,video_type,
volume,display,exist,playdate,channel,rate,mrate,freetime,dkeys)
values('$info[maxindex]','$this_film_id','$info2[media_name]','$info2[video_type]',
'$info2[volume]','$info2[display]','$info2[exist]','$info2[playdate]','$this_film_channel',
'$info2[rate]','$info2[mrate]','$info2[freetime]','$info2[dkeys]')");
}//导入集资料
{
$info[maxindex]+=1;
$sql->insert("insert into volume (film_index,film_id,media_name,video_type,
volume,display,exist,playdate,channel,rate,mrate,freetime,dkeys)
values('$info[maxindex]','$this_film_id','$info2[media_name]','$info2[video_type]',
'$info2[volume]','$info2[display]','$info2[exist]','$info2[playdate]','$this_film_channel',
'$info2[rate]','$info2[mrate]','$info2[freetime]','$info2[dkeys]')");
}//导入集资料
我在$sql->QueryRow("select * from volume where film_id='$film_id'");
后面加上print $sql->Rows;
结果返回也是空。它应该返回记录数的呀。我到mysql数据库里直接敲入 select * from volume where film_id=8084 明明是有记录的呀。简直岂有此理:(
假设影片8084有两集1101,1102,要把它从9频道导入到15频道去
表film: film_id channel ......
8084 9 ......表volume: film_index film_id channel ......
1101 8084 9
1102 8084 9如果导入成功的话应该这样: 表film: film_id channel ......
8084 9 ......
10737 15 ......表volume: film_index film_id channel ......
1101 8084 9 ......
1102 8084 9 ......
1103 10737 15 ......
1104 10737 15 ......其实我知道这样作有先天缺陷,有很多重复的字段值。但因为数据库是别人设计的,而且在线点播还在使用中,所以不可能对数据结构作重大调整。不知道我这样说的够清楚吗??希望各位帮我调试调试。谢谢。一定给分。我的意思就是:通过一个$film_id检索出film和volume中的所有相关字段,然后根据要求(频道的转换)分别插入到film和volume表中!
$info[maxindex]=$sql->data[0]; //这儿就不必加1了。
$sql->QueryRow("select * from volume where film_id='$film_id'");
echo $film_id."<br>"; //检查变量值有没有异常
$info2=$sql->data;
echo $sql->Rows."<br>"; //检查上面的查询有没有异常
if($sql->Rows>0){
for($i=0;$i<$sql->Rows;$i++){
$info[maxindex]+=1; //这儿加1
看看是$file_id是否传过来的,因为你用的是两个php的变量传递
$sql->QueryRow("select max(film_index) from volume");
$maxfilmindex=$sql->data[0];
$sql->QueryRow("select media_name,video_type,volume,display,exist,playdate,rate,mrate,freetime,dkeys from volume where film_id='$film_id' order by volume ");$info=$sql->data;
if($sql->rows>0){ import_film_detail($info,act);
if($this_film_id!=""){
for($i=0;$i<$sql->rows;$i++){
//echo $info[media_name];
$maxfilmindex+=1; $sql->insert("insert into volume (film_index,film_id,media_name,video_type,
volume,display,exist,playdate,channel,rate,mrate,freetime,dkeys)
values('$maxfilmindex','$this_film_id','$info[0]','$info[1]',
'$info[2]','$info[3]','$info[4]','$info[5]','$this_film_channel',
'$info[6]','$info[7]','$info[8]','$info[9]')");
print "集导入成功"; }
} }else {print "该片无集资料,无需导入!";}如上所示,我用echo“$info[media_name]”测试,结果输出“黑暗中归来1黑暗中归来1”;我的QueryRow函数如下:
function QueryRow ($query) {
$this->result = @mysql_query($query, $this->id) or
MySQL_ErrorMsg ("Unable to perform query: $query");
$this->rows = @mysql_num_rows($this->result);
//$this->a_rows = @mysql_affected_rows($this->result);
$this->data = @mysql_fetch_array($this->result) or
MySQL_ErrorMsg ("Unable to fetch data from query: $query");
return($this->data);
}
我想这个函数应该没有问题吧?!