新人。还是while循环的问题。。

PHP code
<?php
$con = mysql_connect('localhost', 'peter', 'abc123');
mysql_select_db("my_db", $con); 
$sql="SELECT * FROM person WHERE id = '1'";
$result = mysql_query($sql, $con); 
while($row = mysql_fetch_array($result))   
//为什么下面的内容只循环1次??mysql_fetch_array($result))获得的到底是字符串还是数值还是?
 {
 echo "<div>" . $row['FirstName'] . "</div>";
 echo "<div>" . $row['LastName'] . "</div>";
 }
mysql_close($con);
?>


上面语句输出内容
Peter
Griffin

数据库内容
id  FirstName  LastName
1   Peter    Griffin
2   Lois    fin

<?php
while($cc="array")
{echo "d";}
?>
这样是无限循环,跟上面的似乎类似,但是上面的为什么只循环1次?

作者: sdffffaa   发布时间: 2011-06-13

$sql="SELECT * FROM person WHERE id = '1'";
你的数据表中 id 为 1 的只有一条

作者: xuzuning   发布时间: 2011-06-13

引用 1 楼 xuzuning 的回复:
$sql="SELECT * FROM person WHERE id = '1'";
你的数据表中 id 为 1 的只有一条

那是不是$row =只等于1或者0是吧?

作者: sdffffaa   发布时间: 2011-06-13

引用 1 楼 xuzuning 的回复:
$sql="SELECT * FROM person WHERE id = '1'";
你的数据表中 id 为 1 的只有一条

还是这个while循环是不是完全没有存在的必要呢?

作者: sdffffaa   发布时间: 2011-06-13

引用 1 楼 xuzuning 的回复:
$sql="SELECT * FROM person WHERE id = '1'";
你的数据表中 id 为 1 的只有一条

$row = mysql_fetch_array($result); 
if ($row=false||$row=true){
 echo "<div>" . $row['FirstName'] . "</div>";
 echo "<div>" . $row['LastName'] . "</div>";}
都不输出

作者: sdffffaa   发布时间: 2011-06-13

$row 是数字 不是 boolean.

if ($row>0)
{
...
}

作者: PhpNewnew   发布时间: 2011-06-13

看错了.你应该是 判断 行数是否超过0行吧?应该用 mysql_num_rows 结果来返回判断

作者: PhpNewnew   发布时间: 2011-06-13

引用 6 楼 phpnewnew 的回复:
看错了.你应该是 判断 行数是否超过0行吧?应该用 mysql_num_rows 结果来返回判断

$row = mysql_fetch_array($result);  
if ($row=5||$row=1||$row=2||$row=3||$row=4||$row=6||$row=7){
 echo "<div>" . $row['FirstName'] . "</div>";
 echo "<div>" . $row['LastName'] . "</div>";}
不输出。
那while循环几次由什么来决定?如果是0和1那我能理解了,是其他的真的不知道为什么只循环1次

作者: sdffffaa   发布时间: 2011-06-13

数组长度应该用sizeof (array) 来获取
判断是否相等 应该用== 而不是=

循环几次? for ($i=0;$i<sizeof($array);$i++)

作者: PhpNewnew   发布时间: 2011-06-13

引用 8 楼 phpnewnew 的回复:
数组长度应该用sizeof (array) 来获取
判断是否相等 应该用== 而不是=

循环几次? for ($i=0;$i<sizeof($array);$i++)

if ($row==5||$row==1||$row==2||$row==3||$row==4||$row==6||$row==7)
也是什么也不输出呢。

作者: sdffffaa   发布时间: 2011-06-13

引用 8 楼 phpnewnew 的回复:
数组长度应该用sizeof (array) 来获取
判断是否相等 应该用== 而不是=

循环几次? for ($i=0;$i<sizeof($array);$i++)

while循环里面没有sizeof吧?

作者: sdffffaa   发布时间: 2011-06-13