Prüfen ob eine SQL SELECT-Abfrage einen Inhalt zurückgibt?
Ich habe in PHP mit SQL einen Wert aus einer Datenbank abgefragt. Gibt es eine Möglichkeit zu überprüfen ob es einen Inhalt gibt. Also quasi wenn die Abfrage so lautet:
SELECT * FROM `TABELLE` WHERE `ID`=1234
Ausgelöst wird wenn es keine Zeile mit ID=1234 gibt?
Danke im Vorraus,
Bohne47
Wie verarbeitest du denn das Ergebnis?
Mit einer while Schleife. Aber die Idee von ZaoDaDong finde ich gut. Da bin ich jetzt gar nicht drauf gekommen.
3 Antworten
Du kannst das z.B. vorab mit einem solchen select prüfen:
SELECT count(*) FROM `TABELLE` WHERE `ID`=1234
und dann erst den tatsächlichen select durchführen, wenn das Ergebnis (was es hier immer gibt) = 1 ist.
In den meisten Programmiersprachen durchläufst du das Resultset in einer Schleife. Das Ende wird mit einem EOF-Flag gekennzeichnet.
Du könntest auch mit einem Count eine Vorselektierung durchführen.
Wenn du in einer Stored Procedure damit weiterarbeitest, kannst du dich an Beispielen aus dem Internet orientieren: https://stackoverflow.com/questions/11852782/t-sql-loop-over-query-results
Wenn die Anfrage keinen sonstigen Errors hatte, dann
if (mysql_num_rows($result)==0) {
//kein Ergebniss
}