ODBC: Überprüfen ob Datensatz vorhanden ist!
Facetious
- php
0 der Flo(h)0 dedlfix
Hi Leute!
Ich will über in über php in access 2000 überprüfen ob ein bestimmter datensatz vorhanden ist.
in mysql heißt das ganze: mysql_affected_rows
in odbc gibts was ähnliches: odbc_num_rows
im php man steht:
odbc_num_rows() returns the number of rows affected. For a SELECT clause this _can_ be the number of rows available.
ich frage den vornamen, nachnamen und geburtsdatum ab, wenn ein gleicher datensatz bereitsvorhanden ist soll er fehlermeldung machen.
odbc_num_rows gibt mir jetzt aber immer -1 zurück, anstatt der vorhandenen zeilen (aus testgründen hab ich bereits eine gleiche zeile in die db eingefügt)
odbc_result_all gibt mir auch die bereits vorhandene zeile aus .. was ist da verkehr?
mfg Facetious
odbc_num_rows() liefert die Anzahl Zeilen eines ODBC-Abfrageergebnisses. Tritt ein Fehler auf, ist sie -1. Bei INSERT, UPDATE und DELETE-Befehlen wird die Zahl der betroffenen Zeilen zurückgegeben. Bei einer SELECT-Abfrage kann dies die Anzahl der vorhanden Zeilen sein.
http://es2.php.net/manual/de/function.odbc-num-rows.php
Gruß Flo
gut kopiert! und wenn du meinen post gelesen hättest, da steht so ziemlich das gleiche nur ohne insert, update und delete.
wie du zweifelsohne lesen kannst steht dort: bei einer select abfrage _KANN_ dies die Anzahl der vorhandenen Zeilen sein
ausserdem würde mir odbc_num_rows dann 1 zurückliefern, denn wie bereits geschrieben werden mir der vorhandene DS ja ausgegeben ...
mfg Facetious
in mysql heißt das ganze: mysql_affected_rows
in odbc gibts was ähnliches: odbc_num_rows
mysql_affected_rows() gilt nur für INSERT, UPDATE oder DELETE. Für SELECT gilt mysql_num_rows().
odbc_num_rows() funktioniert nicht oder nicht zuververlässig. Wenn du die Anzahl der Datensätze wissen willst, ist es besser COUNT(*) zu verwenden oder die Datensätze beim Fetchen selbst mitzuzählen.
Wenn du das die Datenbank zählen lassen willst, kannst du deine Feldliste durch COUNT(*) austauschen oder deine gesamte Abfrage als Subselect verfüttern:
SELECT COUNT(*) FROM (SELECT ... deine Abfrage)
Wenn du das die Datenbank zählen lassen willst, kannst du deine Feldliste durch COUNT(*) austauschen oder deine gesamte Abfrage als Subselect verfüttern:
SELECT COUNT(*) FROM (SELECT ... deine Abfrage)
danke, das war das was ich gesucht habe!