mysql_fetch_array()函数实际上做的是取出记录集($result)中的一行,并将其按(列名-列值)返回为数组,bing并将指针指向下一行。
$choice[xxx]并不循环,因为每次数组得到的内容已经是下一行的内容。

解决方案 »

  1.   

    $choice=mysql_fetch_array每次指针指向下一条我知道,可是choice[]和choiceid[]是如何使指针下移的?它们不是mysql_fetch_array赋值的语句。
      

  2.   

    楼主理解有偏差
    $choice=mysql_fetch_array,一次性取出一条记录出来,并且放入$choice中,$choice是一个数组,存放了查询相关字段的值;
    while循环时,第一次和第二次得到的$choice数组不是一样的,所以$choice[info]和$choice[id]也不一样了!
    关键就是$choice是个数组,简单的说
    id   info
    1    a
    2    b
    3    c
    while循环时,第一次,$choice数组是【1,a】,$choice[info]是a,$choice[id]是1;
    第二次,$choice数组是【2,b】,$choice[info]是b,$choice[id]是2;
    以此类推!
      

  3.   

    晕死了,我不是问$choice=mysql_fetch_array的指针位移
    而是choiceid[],不是choice,choiceid[]是一个新的数组函数,不是choice[id]
      

  4.   

    别慌晕,你需要看一下PHP手册。name='choice[]' 或者是 name='choiceid[]' 只是html控件的名字,为了方便提交后使用数组获得值。其实就是php中的:
    $myAry[] = 1;
    $myAry[] = 2; print_r($myAry);PHP会自动建立数组下标(如不指定,则从0开始递增);
      

  5.   

    choice[]不需要++,他的名字就是choice[]
      

  6.   

    php中,数组的编号是自动的比如说你第一次使用array[]=1;则array[0]==1;返回的就是true
    在第二次使用array[]=1;的时候,array[1]==1;返回true
    只要array[]的中括号里面没有填写序数,php会自动添加的。增量是1
    $choice=mysql_fetch_array($result)
    这里面的$choice不是单纯意义上的数组,是自动适配出来的数组,他本身自动建设成为了一维数组。因为mysql_fetch_array($result)的结果是一个数组
    你的明白?