Nee. mysql_fetch_array
retourneert gewoon de volgende rij van het resultaat en verplaatst de interne aanwijzer. Het loopt niet. (Intern kan het wel of niet ergens een lus gebruiken, maar dat is niet relevant.)
while ($row = mysql_fetch_array($result)) {
...
}
Dit doet het volgende:
mysql_fetch_array
haalt de volgende rij op en geeft deze terug- de rij is toegewezen aan
$row
- de uitdrukking wordt geëvalueerd en als deze wordt geëvalueerd als
true
, de inhoud van de lus wordt uitgevoerd - de procedure begint opnieuw
Dit doet het volgende:
mysql_fetch_array
haalt de volgende rij op en geeft deze terug- de rij is toegewezen aan
$row
foreach
maakt een lus over de inhoud van de array en voert de inhoud van de lus zo vaak uit als er items in de array zijn
In beide gevallen mysql_fetch_array
doet precies hetzelfde. Je hebt maar zoveel lussen als je schrijft. Beide constructies doen echter niet hetzelfde. De tweede zal slechts op één rij van het resultaat werken, terwijl de eerste over alle rijen zal lopen.