gpt4 book ai didi

php - mysql_fetch_array while 循环。它是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 06:55:29 24 4
gpt4 key购买 nike

我已经在 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”打印出相同的“数组获取”“行”循环……

有没有一种方法可以让我写这篇文章,让我对发生的事情有更好的逻辑理解?就像说:

$i=0;
while ($row = ($i+mysql_fetch_array($query)) {
...
...
$i++;}

我知道这可能行不通,但这个函数如何自增?有没有一种方法可以将其编写到代码中实际上可以看到某种增量的位置?

谢谢

最佳答案

每次您调用 mysql_fetch_array 时,它都会从您的查询中提取下一行。 while 循环不断返回 true 而 mysql_fetch_array 仍然有一些东西要分配给变量 $row2。一旦超出行数,它就没有任何东西可以给变量,并返回 false。

ETA:关于您提到的最后一点,您可以在循环的每次迭代中有一个变量增量,就像在您的示例中一样,但这并不是完全必要的。您还可以通过在 while 循环之前执行类似 $var = mysql_num_rows($data) 的操作来查看返回了多少行。

关于php - mysql_fetch_array while 循环。它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10503216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com