mysql_fetch_: Letzte Position erkennen
bearbeitet von ursus contionabundo> 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:
~~~php
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:
~~~php
$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.
mysql_fetch_: Letzte Position erkennen
bearbeitet von ursus contionabundo> 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:
~~~php
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:
~~~php
$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.
mysql_fetch_: Letzte Position erkennen
bearbeitet von ursus contionabundo> 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. Lösung:
~~~php
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:
~~~php
$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.