没有把你的程序全部看通,不过初看,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]')");
               }//导入集资料

解决方案 »

  1.   

    感谢318兄指点;我试了下,觉得错不在此。好像返回的记录为空。
    我在$sql->QueryRow("select * from volume where film_id='$film_id'");
    后面加上print $sql->Rows;
    结果返回也是空。它应该返回记录数的呀。我到mysql数据库里直接敲入 select * from volume where film_id=8084 明明是有记录的呀。简直岂有此理:(
      

  2.   

    sql->QueryRow("select * from volume where film_id='$this_film_id'");
      

  3.   

    还是qiushuiwuhen仔细,$film_id这个变量不知道是不是写错了?
      

  4.   

    不是的。我再说一下我的意思:$film_id是从第一页(list.php)传过来的,首先要把$film_id对应的影片资料(film表)导入到第二页(import.php)$this_film_id所指的film表新记录中;如上所述,这一步已经实现了。其次,在完成前一步导入后,要把$film_id对应的集资料(volume表)也导入到$this_film_id所指的volume表新记录中。我就是这一步不能实现,程序运行时没有报错。
    假设影片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表中!
      

  5.   

    我已经基本上看懂你的程序了,没发现什么错误,建议如下检查一下
              $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
      

  6.   

    die("select * from volume where film_id='$film_id'");
    看看是$file_id是否传过来的,因为你用的是两个php的变量传递
      

  7.   

    把$sql->QueryRow()方法贴出来看一下三?
      

  8.   

    各位大哥,小弟现在可以插入集了。但奇怪的是:始终只能插入第一条记录。比如我某部片子有2集,导入后检查,发现导入的两条集记录都是第一集的字段值,只是film_index值不同。怎么会读不出第二条记录呢?我修改后的代码如下:
    $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);
        }
    我想这个函数应该没有问题吧?!