Moin!
wie kann ich am einfachsten feststellen, ob eine tabelle einen (oder mehrere) datensätze auf die eine bedingung zutrifft hat?
Man fragt die Datenbank und wertet deren Ergebnis aus.
also mit
SELECT...WHERE(...) abfrage und dem php befehl mysql_num_rows bekomme ich zumindest eine rückmeldung, wenn ein solcher datensatz existiert.
Die Datenbank gibt dir
- einen Fehler, wenn dein SQL-Statement fehlerhaft ist, ansonsten aber immer
- KEINEN Fehler, sondern Null oder mehr Datensätze, deren Zahl mit mysql_num_rows in PHP ausgewertet werden kann.
gibt es keinen, so wird ein fehler erzeugt bzw gibt es keine rückmeldung.
Es gibt immer eine Rückmeldung, und es gibt, auch wenn kein Datensatz paßt, keine Fehlermeldung.
da das nicht sehr professionell ist, wüsste ich gerne, wie man das "richtig" macht.
Wenn du die Datensätze im gleichen Skriptlauf auch noch ausgeben/verarbeiten willst, arbeitest du mit der normalen SELECT-Abfrage und mysql_num_rows().
Wenn du wirklich nur die Anzahl wissen willst, fragst du "SELECT COUNT(*) as anzahl FROM tabelle WHERE deine_bedingung" und erhälst als einzige Datenbankergebniszeile eine mit der möglichen Anzahl von Datensätzen, verzichtest aber darauf, diese ganzen Datensätze aus der Datenbank zu übertragen und bei PHP in einem Pufferspeicher zwischenzulagern - das ist also ratsamer, wenn du die Datenmenge nachher sowieso ungenutzt wegwirfst.
- Sven Rautenberg