ursus contionabundo: mysql_fetch_: Letzte Position erkennen

Beitrag lesen

Tach!

Nach dem vollständigen Durchlauf der Schleife steht in $row immer der letzte Datensatz. Soll heißen, Dein Problem existiert eigentlich gar nicht.

Nein, da steht ein false drin, sonst könnte while nicht bremsen.

Stimmt. Du hast Recht. Lösung:

while ( $row =) {$lastRow = $row;
}

Dann stehts in $lastRow.

2. Lösung: Man kann auch mitzählen. mysql[i]_nun_rows liefert ja die Anzahl der "Ergebniszeilen" und dann:

$c = 0;
# $l = mysql_num_rows( $result );
$l = $result->num_rows;

while ( $row =) {$c++;
   if ( $l == $c ) {
      $lastRow = $row;
   }
}

bei vielen/großen Feldern (Spalten) im Resultset könnte das Mitzählen billiger sein als das die Übernahme in eine weitere Variable.

3. Lösung:

Die abgefragten Datensätze enthalten womöglich eine ID oder eine unique Spalte, nach der laut Abfrage auch sortiert ist. Einfach merken, was bei mysqli_fetch_assoc rauskommt.

while ($row = $result->fetch_assoc()) {$lastId = $row['ID'];
}