Hello Rouven,
Ich möchte gerne den Wert der aktuellen Datensatzzeiger-Position herausfinden, den meine aktuelle mysql-query hat. wenn ich die query z.b über WHERE id=17 mache, bekomme ich die dazupassende row geliefert, weiß aber nicht, welchen wert der zeiger besitzt. wie geht das??
Das scheint in PHP nicht implementiert zu sein, oder ich habe es übersehen.
In der MySQL-API ist es http://dev.mysql.com/doc/refman/5.1/en/mysql-row-tell.html
verstehe ich den OP falsch, oder passt die vorgeschlagene Lösung nicht zum Problem. Toms Lösung dient dazu, wenn MySQL auf eine Abfrage 27 Datensätze zurückliefert, man mit einer Schleife darüber läuft, dann herauszufinden beim wievielten Satz des Ergebnisse man ist - wenn ich mich da vertue, spart euch die Mühe weiterzulesen *g*
Der OP möchte wissen, wenn er SELECT FROM WHERE id=17 macht, _einen_ Satz zurückbekommt, der wievielte in der Tabelle das ist - richtig? Wenn dem so ist: die Frage ist bei einer relationalen Datenbank sinnfrei, es gibt von Natur aus keine Reihenfolge, erst durch ein ORDER BY während der Abfrage oder ggf. in Form eines Index erhalten die Sätze eine Reihenfolge. Da dem so ist, gibt es AFAIK keine direkte Methode, die Position eines Datensatzes in einer Tabelle festzustellen, weil diese nicht existiert.
Ich habe Simon anders verstanden.
Es ging ihm mMn nicht um die Position in einer Tabelle, sondern um die Position im Stored Resultset und die ist durchaus bestimmbar, da bereits serialisiert und damit eindeutig reproduzierbar, solange das Resultset lebt. Resultsets sind Snapshots, zumindest bei MySQL.
Aber fragen wir ihn doch einfach danach. Simon, was meintest Du? Die Position des Datensatzes in der Ergebnismenge (Resultset) oder eine Position in der Ausgangsmenge (Tabelle)?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
