2009-06-01 6 views

Antwort

0

Wenn Sie versuchen, das erste Element für etwas Besonderes zu verwenden, dann vielleicht so etwas wie:

$row=mysql_fetch_assoc(); 
//do stuff to first row 
do { 
    //do stuff to all rows (including the first) 
} while ($row=mysql_fetch_assoc()); 

Ansonsten habe ich keine Ahnung, was die Frage ist, und ich bin kein PHP-Typ ...

1

ich würde verwenden:

if ($row = mysql_fetch_assoc()) { 
    // process first item 
    while ($row = mysql_fetch_assoc()) { 
     // process following items 
    } 
} 
+0

-1! Ich würde das nicht benutzen. Eine while-Schleife wird nur während TRUE ausgeführt, was zuerst überprüft wird. Daher ist die IF doppelzüngig, da die Schleife sowieso nicht ausgeführt würde, wenn sie alleine gelassen würde. –

+0

@Die Böse Flea: Das ist falsch. Die erste $ row = mysql_fetch_assoc() prüft, ob Daten vorhanden sind (false, wenn keine vorhanden sind), die zweite prüft, ob mehr als eine Zeile in der Ergebnismenge vorhanden ist (mysql_fetch_assoc() verschiebt den internen Ergebniszeiger). Also Gumbo hat absolut Recht. –

+0

@Die böse Flea: Das ist falsch. Wenn die 'if'-Contition wahr ist, würde' $ row' den ersten Datensatz enthalten und kann in "process first item" verarbeitet werden. Und nur wenn es mehr als einen Datensatz gibt, wird die "while" Bedingung erfüllt und iteriert den Rest. – Gumbo

0

Sie haben noch keine Methode für genau wissen Position in jedem Moment?

zum Beispiel implementiert Java Iterator next oder hasNext(), wenn! HasNext() das Element das letzte ist.

+0

Bitte editiere deine Frage und nutze nicht die Antwortfunktion. Sie können dies objektorientiert mit einem Iterator implementieren, wenn Sie möchten. – Gumbo

1
$first = true; 
while ($row=mysql_fetch_assoc()) { 
    if ($first) echo "First" 
    $first = false; 
} 
+0

Um Zeilen mit dieser Methode zu alternieren, tun Sie einfach $ first =! $ First. –

+0

das ist das gleiche –

+0

Wahre David, wahr. Aber es ist die einzige trockene Art, es zu tun, es gibt keinen anderen Weg. DB-Objekte mit Iteratoren sind entweder selten oder Teil eines Frameworks. –

0

gut, wenn ich richtig verstehe Ihre Frage, möchten Sie die erste Zeile und dann die anderen durchlaufen:

$row = mysql_fetch_assoc(); // $row contains first row 

while ($row = mysql_fetch_assoc()) { // loop through the rest of the rows 

} 
Verwandte Themen