mysql _выборка _массив во время цикла. Как это работает?

Я читал об этой функции на php.net, и там до сих пор нет ответа на мой вопрос. Я знаю немного C для начинающих, и я только начал использовать php. Обычно в C, если вы должны были выполнить цикл while, должно быть какое-то условие, чтобы продвинуть цикл до точки, где он больше не будет действительным, например :

while (x >= 10)  
{ 
    printf("..."; 
    printf("x \n"; 
    x++; 
}

. Однако в моем php-скрипте, который я использую для pm-сообщения system У меня есть цикл 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++;}

Я знаю, что это, вероятно, не сработает, но как эта функция увеличивает себя? И есть ли способ написать это так, чтобы в коде действительно было видно какое-то приращение?

Спасибо

5
задан 1337475 8 May 2012 в 17:11
поделиться