133*_*475 5 php mysql increment
我已经阅读了关于php.net上的功能,但仍然没有回答我的问题.我知道C的初学者数量,我刚开始使用php.通常在C中,如果你要做一个while循环,那么需要有一些条件来将循环推进到不再有效的程度,如下所示:
while (x >= 10)
{
printf("...";
printf("x \n";
x++;
}
Run Code Online (Sandbox Code Playgroud)
但是在我用于pm消息系统的php脚本中,我有一个像这样的while循环:
while($row2 = mysql_fetch_array($query))
Run Code Online (Sandbox Code Playgroud)
其次是:
{
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 } ?>
Run Code Online (Sandbox Code Playgroud)
这究竟是如何工作的,从C背景看起来几乎就像它会保持在同一个位置,每次我们通过循环时从相同的"$ query"打印出相同的"数组获取"'行'. ..
有没有办法可以写这个来让我更好地理解最新情况?喜欢说:
$i=0;
while ($row = ($i+mysql_fetch_array($query)) {
...
...
$i++;}
Run Code Online (Sandbox Code Playgroud)
我知道可能不会工作,但这个功能如何增加?有没有办法把它写在代码中实际可以看到某种增量的地方?
谢谢
Dav*_*lar 11
每次调用mysql_fetch_array它时都会从查询中提取下一行.该while循环保持返回true,而mysql_fetch_array仍有一些东西要分配给变量$row2.一旦它没有行,它就没有任何东西可以提供变量,并返回false.
ETA:关于你提到的最后一点,你可以在循环的每次迭代中有一个变量增量,就像在你的例子中一样,但这并不是完全必要的.您还可以通过在循环$var = mysql_num_rows($data)之前执行某些操作来查看已返回的行数while.