将$sql="SELECT * FROM person WHERE id = '1'"; 改成$sql="SELECT * FROM person;
这样是无限循环,跟上面的似乎类似,但是上面的为什么只循环1次? 1、因为$cc="array",所以$cc永远不会为“空”或“FALSE”,所以是无限循环。 2、即便将:$sql="SELECT * FROM person WHERE id = '1'"; 改成了$sql="SELECT * FROM person; while($row = mysql_fetch_array($result)) 也不会是无限循环,该while循环的次数和你数据库里的行数有关/相等。 这是因为mysql_fetch_array($result)执行时会取得$result中一行数据(该数据为一个数组),赋给$row,因为$row不为空或false所以执行循环体, 当第二次循环时mysql_fetch_array($result)取得下一行数据(该数据为一个数组)赋给$row,……; 当第三次循环时,此时再执行$mysql_fetch_array($result)时它返回的是False。(因为你的数据库里只有二条数据,所以此时数据集$result中也没有第三行数据可以取)。并将false赋给$row. 因为$row的值为$false所以结束循环。 ……
$sql="SELECT * FROM person WHERE id = '1'"; 只有一条记录。
你的数据表中 id 为 1 的只有一条
if ($row=false||$row=true){
echo "<div>" . $row['FirstName'] . "</div>";
echo "<div>" . $row['LastName'] . "</div>";}
都不输出
{
...
}
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次
判断是否相等 应该用== 而不是=循环几次? for ($i=0;$i<sizeof($array);$i++)
也是什么也不输出呢。
返回多少条结果
用while 一般都无需用mysql_num_rows 只让他自己循环取就是咯
如果你要控制取几条之类的 可以用 for 循环 或者 foreach 等
把你的sql语句的id='1'去掉试试
————————————
你只查询一条,肯定只出来一条了吗$sql="SELECT * FROM person这样试试
$con = mysql_connect('localhost', 'peter', 'abc123');
mysql_select_db("my_db", $con);
$sql="SELECT * FROM person";
$result = mysql_query($sql, $con);
while($row = mysql_fetch_array($result))
{
echo "<div>" . $row['FirstName'] . "</div>";
echo "<div>" . $row['LastName'] . "</div>";
}
mysql_close($con);
?>这样试试看!~~
你就知道它是什么东西了!
{
echo "<div>" . $row['FirstName'] . "</div>";
echo "<div>" . $row['LastName'] . "</div>";
}
mysql_query($sql, $con); //返回的是查询语句执行后得到的结果集(结果集为数组),语句执行失败返回的是false
mysql_fetch_array($result); //从结果集中取数据,每执行一次取一条记录,同时将结果集(数组)的指针往后移动一位,当移动到最后的时候,函数返回false
改成$sql="SELECT * FROM person;
1、因为$cc="array",所以$cc永远不会为“空”或“FALSE”,所以是无限循环。
2、即便将:$sql="SELECT * FROM person WHERE id = '1'";
改成了$sql="SELECT * FROM person;
while($row = mysql_fetch_array($result)) 也不会是无限循环,该while循环的次数和你数据库里的行数有关/相等。
这是因为mysql_fetch_array($result)执行时会取得$result中一行数据(该数据为一个数组),赋给$row,因为$row不为空或false所以执行循环体,
当第二次循环时mysql_fetch_array($result)取得下一行数据(该数据为一个数组)赋给$row,……;
当第三次循环时,此时再执行$mysql_fetch_array($result)时它返回的是False。(因为你的数据库里只有二条数据,所以此时数据集$result中也没有第三行数据可以取)。并将false赋给$row.
因为$row的值为$false所以结束循环。
……
只有一条记录。