mysql_fetch_array while-Schleife. Wie funktioniert es?

Habe ich gelesen, die über die Funktion auf php.net und das hat noch nicht meine Frage beantwortet. Ich weiß ein Anfänger Menge an C und ich habe gerade angefangen mit php. Normalerweise in C würde man eine while-Schleife muss es sein, eine Bedingung Voraus, die Schleife zu einem Punkt, wo es nicht mehr gültig sein, etwa so:

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

Aber in meinem php-Skript, dass ich für eine pm-message-system habe ich eine while-Schleife wie diese:

while($row2 = mysql_fetch_array($query))

gefolgt von:

{ 
  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 } ?>

Wie funktioniert das genau, von einem C-hintergrund würde es fast scheinen, wie dieser bleiben würde, an der gleichen Stelle, den Ausdruck des gleichen "array fetch" 'Zeile' aus der gleichen "$Abfrage" jedes mal, wenn wir gehen durch die Schlaufe....

Gibt es eine Möglichkeit, kann ich dies Schreibe, um mir einen besseren logischen Verständnis von, was Los ist? wie gesagt:

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

Ich weiß, dass das wahrscheinlich nicht funktionieren, aber wie funktioniert das Inkrement selbst? Und gibt es eine Möglichkeit, es zu schreiben, wo es hätte eigentlich eine Art Schrittweite sichtbar in dem code?

Danke

  • Ich würde Lesen, auf den PHP-Dokumentation für diese, um ein gutes Verständnis. Die Funktion ist im Grunde arbeitet auf eine Ressource behandeln, um Ihre Abfrage-Ergebnisse. Die Funktion gibt FALSE zurück, wenn es keine Ergebnisse mehr zurück und so ist die while-Schleife zu FALSE ausgewertet wird.
  • Bitte aufhören mit schreiben neuen code mit dem alten mysql_* Funktionen. Sie werden nicht mehr gepflegt und Gemeinschaft hat begonnen, die deprecation-Prozess. Stattdessen sollten Sie lernen, über vorbereitete Anweisungen und verwenden Sie entweder PDO oder MySQLi. Wenn Sie die Pflege zu lernen, hier ist ein ziemlich guter PDO-bezogenen tutorial.
InformationsquelleAutor 1337475 | 2012-05-08
Schreibe einen Kommentar