我想是不是while($cart_product=mysql_fetch_array($result))这里的问题?
是不是要算一下数组的长度然后再决定循环的次数?不然当然只能循环一次了?
mysql_fetch_array 不能多次返回数组值吧!

解决方案 »

  1.   

    我想是不是要选算一下数组的长度再决定循环的次数?
    while($cart_product=mysql_fetch_array($result))这样只返回一次,一个值!当然只能循环一次了!
    如果算一下长度再决定循环的次数就不会只是一个了!
      

  2.   

    这个程序编得挺逗啊:
    既然循环中要入库的内容和前面的select语句取出的内容毫无关系,只是为了控制循环次数,那为什么要这么写呢?
    象下面这样写可读性好,而且肯定行!
    $sql="select * from Cart where idUser='5f7d19df1c3cb8da9644a8f43f8daf36'";
    $result=mysql_query($sql);
    $sn=mysql_num_rows($result);//加上这句不就完了?
    for($i=0;$i<$sn;$i++){
    $sql="insert into Orders set idBasket='$idOrder',idUser='$idOrderUser',dtCreate=current_date()";
    $result=mysql_query($sql);}
      

  3.   

    你的循环在执行一次后就停止了,是因为你把$result重新赋值(空值)。
    改成这样试试看(改动之处位于最后一句)
    ----------------------
    $sql="select * from Cart where idUser='5f7d19df1c3cb8da9644a8f43f8daf36'";
    $result=mysql_query($sql) or die($sql);
    while($cart_product=mysql_fetch_array($result)){
    $sql="insert into Orders set idBasket='$idOrder',idUser='$idOrderUser',dtCreate=current_date()";
    //$result=mysql_query($sql) or die($sql);
             mysql_query($sql) or die($sql);
    }
      

  4.   

    不好意思,这两天有别的事上不来。我的本意是从Cart表中取的数据再把它们insert到Order表中。我在while里把insert改成echo ""是行的,可以输出正确次数。
    我也把while里面的$result改成另外的一个名字,但是还是不行。
    把while里面的insert 改成select 也不行。
    这是什么问题?
    我把while里面的改成list()=each()是可以的insert n多次,只不过输入的不是想要的。我现在想到了另一个办法,要试一下再说。
      

  5.   

    什么数据库?
    要知道有的数据库是可以用select ... into 的语句直接进行
    数据复制的。
      

  6.   

    此外,程序中使用fetch array得到的数据要用数组访问吧。
    我没听说可以直接用变量访问的(难道我孤陋寡闻?)。
    建议更改为
    $sql="select * from Cart where idUser='5f7d19df1c3cb8da9644a8f43f8daf36'";
    $result=mysql_query($sql) or die($sql);
    while($cart_product=mysql_fetch_array($result)){
    $idOrder=$cart_product['idOrder'];
    $idOrderUser=$cart_product['idOrderUser'];
    $sql="insert into Orders set idBasket='$idOrder',idUser='$idOrderUser',dtCreate=current_date()";
    }
    或者
    $sql="select * from Cart where idUser='5f7d19df1c3cb8da9644a8f43f8daf36'";
    $result=mysql_query($sql) or die($sql);
    while($cart_product=mysql_fetch_array($result)){
    $sql="insert into Orders set idBasket='".$cart_product['idOrder']."',idUser='".$cart_product['idOrderUser']."',dtCreate=current_date()";
    }
      

  7.   

    是MySQL
    数组自然是数组,不过我没有把那几个写出来,只写了几个不在$cart_product里面的。谢谢各位。问题我自己解决了。
      

  8.   

    应该可以使用insert into ... select 句法实现表的复制。