Beitragsdatum | 29.07.2023 |
---|---|
Letzte Aktualisierung | - |
Betrifft | xataface |
Xataface ist ein Framework für MySQL-Datenbanken und ermöglicht es, schnell und relativ einfach eine WebGUI für eine Datenbank zu entwickeln - mit der Möglichkeit Funktionen einzubauen. IT-MÜCKE setzt stark auf Xataface: Suche auf it-muecke.de.
Ich hatte die Anforderung, bei Anlage eines neuen Datensatzes zu prüfen, ob ein korrespondierender Datensatz in einer anderen Tabelle existiert.
Dazu kann folgende Methode genutzt werden:
$record = df_get_record('table', array('fieldname'=>$fieldvalue)); # table = Tabellenname # fieldname = Spaltenname der Tabelle # fieldvalue = eine bestimmte Zeile in der Tabelle definiert durch den Wert in der Spalte fieldname
Hierbei erhält man den ersten passenden Datensatz aus der Datenbank zurück. Allerdings:: ich erhielt auch dann einen Datensatz zurück, wenn fieldvalue
leer war.
Meine weitere Abfrage zielte aber darauf ab, leere Datensätze zu erkennen:
$record = df_get_record('table', array('fieldname'=>$fieldvalue)); if (!is_null($record)) { // [irgendwas tun, wenn KEIN Datensatz vorhanden ist] }
Meine Abfrage wurde nie erfüllt, da immer ein Datensatz geliefert wurde, wenn fieldvalue
leer war.
Der Vergleichsoperator ('fieldname'=>$fieldvalue
) ist im Standard so eingerichtet, dass er bei einem leeren fieldvalue
den ersten Datensatz zurück liefert.
Der Vergleichsoperator muss auf „exakte Übereinstimmung“ umgebaut werden:
$record = df_get_record('table', array('fieldname'=>'='.$fieldvalue));
Also auf: 'fieldname'=>'='.$fieldvalue
ändern.
Dadurch wird nur bei exakter Übereinstimmung ein Datensatz geliefert, sonst bleibt er leer.
Quellen:
Ähnliche Themen im blog:
mysql, xataface