我已经阅读了 php.net 上的该函数,但这仍然没有回答我的问题。我对 C 语言有一定的了解,并且刚刚开始使用 php。通常在 C 中,如果要执行 while 循环,则需要有一些条件来将循环推进到不再有效的点,如下所示:
while (x >= 10)
{
printf("...";
printf("x \n";
x++;
}
然而,在我用于 pm 消息系统的 php 脚本中,我有一个像这样的 while 循环:
while($row2 = mysql_fetch_array($query))
其次是:
{
echo "<table border=1>";
echo "<tr><td>";
echo "Message #: ";
echo $row['id'];
echo "</td></tr>";
echo "<tr><td>";
echo "To: ";
echo $row['to'];
echo "</td></tr>";
echo "<tr><td>";
echo "From: ";
echo $row['from'];
echo " ";
echo "</td></tr>";
echo "<tr><td>";
echo "Message: ";
echo $row['message'];
echo "</td></tr>";
echo "</br>";
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2></td></tr>
<tr><td></td><td>
<input type="hidden" name="id" maxlength="32" value = "<?php echo $row['id']; ?>">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="delete" value="Delete PM # <?php echo $row['id']; ?>">
</td>
<td colspan="2" align="right">
<input type="submit" name="reply" value="Reply to <?php echo $row['from']; ?>">
</td></tr>
</table>
<?php } ?>
它究竟是如何工作的,从 C 背景来看,它似乎几乎会停留在同一个位置,每次我们通过循环时都会从相同的“$query”打印出相同的“array fetch”“row”。 ..
有没有办法可以写这个让我对正在发生的事情有更好的逻辑理解?就像说:
$i=0;
while ($row = ($i+mysql_fetch_array($query)) {
...
...
$i++;}
我知道这可能行不通,但是这个函数如何自我递增呢?有没有一种方法可以将其编写为在代码中实际可见的某种增量?
谢谢
每次你打电话mysql_fetch_array
它从您的查询中提取下一行。那while
循环不断返回true,而mysql_fetch_array
还有一些东西可以分配给变量$row2
。一旦行数耗尽,就没有剩余的内容可以提供变量,并且返回 false。
ETA:关于您提到的最后一点,您可以在循环的每次迭代中使用可变增量,就像您的示例中一样,但这并不是完全必要的。您还可以通过执行类似的操作来查看返回了多少行$var = mysql_num_rows($data)
在你之前while
loop.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)