Hallo,
while($row = mysql_fetch_array($result) && $i<=3)
nein, ist richtig so, aber das sei mal dahingestellt,
Also wenn Du nach 3 Datensätzen abbrechen willst, dann muß es && heißen. Du willst ja solange (while) einlesen, solange es noch Daten gibt (mysql_fetch_array) _und_ $i noch nicht größer als 3 ist ($i <=3).
Wenn Du mit verknüpfst, dann bekommst Du wieder alle Datensätze, da ja nur eine der beiden Bedingungen erfüllt sein muß.
Noch was. ICh weiß ja nicht wie PHP intern arbeitet, aber bei jeder halbwegs normalen Programmiersprache werden die Bedingungen von links nach rechts geprüft. Und normalerweise werden keine weiteren Überprüfungen mehr gemacht, wenn sich das ergebnis nicht ändern kann.
Du kannst etwas Performance gewinnen, wenn Du schreibst
while(($i<=3) && ($row = mysql_fetch_array($result)))
weil ein Zahlenvergleich schneller geht, als das fetchen eines Datensatzes. Das ist vielleicht hier nicht so relevant, aber z.B. wenn längere Operation (URL-Laden oder was weiß ich) gemacht werden, dann wirds schon interessant.
Das aber nur so am Rande
Grüße
Klaus