Hi!
Ich führe ein Select aus und würde dann gerne abfragen, wie viele Ergebnisse raus gekommen sind (bzw. mir würde die Frage "gabs Ergebnisse?" reichen).
Wenn dich allein diese Aussage interessiert und du die Ergebnisse nicht brauchst, mach ein SELECT COUNT(*). Damit PHP wissen kann wieviele Zeilen in einer Ergebnismenge enthalten sind, muss es diese komplett vom DBMS abholen. Ein mysql_query() macht dies bereits im Hintergrund. Anderenfalls (und auch bei ungepufferten Abfragen (mysql_unbuffered_query()) kann es das nicht vor dem Fetchen des letzten Datensatzes wissen. Wenn du also wirklich nur die Zahl brauchst, dann ist ein COUNT(*) die effizienteste Lösung.
affected_rows gibt mir immer -1, egal ob ich es auf das Ergebniss oder das Datenbank-Objekt anwende. Habe das Manual durch geschaut und alles probiert was sich nur annähernd danach angehört hätte, leider alles ohne Erfolg.
Du hast nur nicht gelesen, für welche Art Statements mysql_affected_rows() ein sinnvolles Ergebnis liefert und auch nicht den "See also"-Abschnitt beachtet. Dort fändest du eine Funktion verlinkt, die die Anzahl der Einträge in der Ergebnismenge liefert. Aber da du die Datensätze nicht haben willst, ist beides nichts für dich, sondern ein COUNT(*).
Lo!