$sql="select id,Project,Priority,ToBeDone from Testplans where Assignee='17' ";
$result=mysql_query($sql);
$num=mysql_num_fields($result)
$i=0;
while($arr = mysql_fetch_assoc($result)){
$keys = array_keys($arr);
if($i==0){ //第一条的时候就输出表头
echo "";
for($y=0;$y".$keys[$y]."";
}
echo "";
}
echo "";
for($i=0;$i".$arr[$keys[$i]]."";
}
echo "";
$i++;
}
你试一试呢~
把表体也在这个while里面循环出来~
-----------------------------------------
$row=mysql_fetch_row($result);
while($row)
{
这样的语句会造成死循环= =
第一句~$row=mysql_fetch_row($result); 返回了数据集的第一行数据~
接着下来的while($row) 。 如果数据的第一行有数据~那么返回的$row就一定为true。
所以~这里的while($row) 就变成了 while(true) .所以造成了死循环
--------------------------------------------
正确的用法。应该是
while($row =mysql_fetch_row($result) )
看起来好像没有差别。
其实是
while里面的条件~是执行一条获取数据的方法,方法执行成功了,并且成功返回值了,才为true。
并且ysql_fetch_row/array/assoc 。在执行后,会自动将指针指入下一行。
循环再返回的时候,就会去读出下一条数据。
直到没有数据~返回false。循环也就结束了。
--------------------------------
第一种写法错误的主要原因是,while的条件,恒为true;