$rows = mysql_fetch_array($result);reset($rows);  //数组内部指针返回第一个元素

解决方案 »

  1.   

    还是有点问题:$array=mysql_fetch_array($result,MYSQL_ASSOC);
    if ($array["speciality1"]!="" && $array["amount1"]!=0) echo "<table border='1'>";reset($array);//echo $array["speciality1"];  这里用echo显示指针已经回到第一个数组 --------(1)while ($array=mysql_fetch_array($result,MYSQL_ASSOC)){ echo $array["speciality1"];  把上面的echo(1)注释掉,这里用echo显示则是第二个数组的                不知怎么回事?
    ....
      

  2.   

    next();  指针向下一个数组元素移动
    prev();  指针向上一个数组元素移动这些都是数组的基本操作函数!你上面已经调用了一次,然后注释掉,指针当然已经指向第二个元素了!
      

  3.   

    $array=mysql_fetch_array($result,MYSQL_ASSOC);
    if ($array["speciality1"]!="" && $array["amount1"]!=0) echo "<table border='1'>";reset($array);while ($array=mysql_fetch_array($result,MYSQL_ASSOC)){ echo $array["speciality1"];   这样,怎么还是显示第二个数组?
      

  4.   

    我追踪的一下数据,无论你是在上面的中间用reset($array);还是$array=prev($array);前者把
    $array指针回到第一个,后者返回false值,接下来再次用while ($array=mysql_fetch_array($result,MYSQL_ASSOC)),那么,指针一定是移到第二队数组,用了前面调用过mysql_fetch_array,因为要用while穷举$result,因些不可能while($array),这样会造成死循环,我自己想到的办法是:把查询$result重置,改成:
    $array=mysql_fetch_array($result,MYSQL_ASSOC);
    if ($array["speciality1"]!="" && $array["amount1"]!=0) echo "<table border='1'>";if ($result) mysql_free_result($result);这里再来一次跟上面同样的查询...
    接着:while ($array=mysql_fetch_array($result,MYSQL_ASSOC)){ echo $array["speciality1"];则while内就是从第一个数组开始了.除此之外还有什么办法吗?
      

  5.   

    $array=mysql_fetch_array($result,MYSQL_ASSOC);
    if ($array["speciality1"]!="" && $array["amount1"]!=0) echo "<table border='1'>";reset($array);foreach($array as $key => $val){ echo $val;}
      

  6.   

    zeroleonhart(Strong Point:Algorithm) ,我试了一下,好像不行啊因为mysql_fetch_array只返回第一个记录集.用foreach历遍只能把第一个查询的记录显示出来,之后的查询记录根本就不能显示出来了.我是要控制mysql_fetch_array的指针,不是控制由mysql_fetch_array返回的数组...好像搞错了.