
Zugriff auf den MySQL-Server mit dem MBS Plugin
Alle Datenbanken einer WordPress-Installation befinden sich auf einer MySQL-Datenbank des entsprechenden Webservers. Um auf die Datenbank extern zugreifen zu können, muß die entsprechende Datenbank für externe Zugriffe freigegeben werden. Diese Einstellung kann in der Regel im Backend des Server-Anbieters vorgenommen werden.
Um direkt auf die Datenbanken des Webservers zugreifen zu können, ist die Nutzung des MBS FileMaker Plugins erforderlich, denn FileMaker erlaubt mit Bordmitteln keinen direkten Zugriff auf SQL-Server. Das MBS Plugin kann auf der Website von Monkeybread Software erworben werden, und es steht eine kostenlose Demoversion zum Download zur Verfügung. Um den Zugriff auf die mySQL-Datenbanken zu ermöglichen, muß sich außerdem die MySQL-Library (libmysql.18.dylib oder libMySQL.dll) im Datenbankverzeichnis befinden.
WordPress, Contact Form 7 und Flamingo
Um Formulare für Benutzereingaben auf einer WordPress-basierten Website bereitzustellen, nutzen Sie das Plugin Contact Form 7. Um die Formulareingaben zu speichern, installieren Sie zusätzlich die Erweiterung Flamingo vom gleichen Hersteller. Beide Plugins können auch direkt im WordPress-Repository innerhalb des WordPress-Backends installiert und aktiviert werden.
Im WordPress-Backend navigieren Sie nun zum Menüpunkt [Formulare] und erstellen ein neues Formular für Ihre Website. Da Flamingo automatisch alle Formulareingaben speichert, müssen Sie nichts weiter tun außer der Erstellung eines neuen Formulars.
Flamingo speichert alle Datensätze intern in der Tabelle „wp_posts“ mit dem Post-Type „flamingo-inbound“ und legt selbst keine eigene Tabelle in der WordPress-Datenbank an. In unserer kleinen Beispiellösung werden also alle Datensätze aus der Tabelle „wp_posts“ mit dem Post-Type „flamingo-inbound“ importiert. Weil die Datensätze von Flamingo einfach per Zeilenvorschub getrennt werden, können wir die Feldinhalte ganz einfach mit der FileMaker-Funktion „HoleWert“ extrahieren.
Prinzipiell können durch Angabe eines anderen Post-Types auch andere Datensätze aus der WordPress-Datenbank importiert werden. Die Daten könnten dann im Feld [post_content] jedoch anders formatiert sein. In unserer Beispiellösung beschränken wir uns auf WordPress mit Contact Form 7 und Flamingo, das die Feldinhalte einfach zeilenweise untereinander schreibt.
Bildschirmmaske der Beispiellösung
In der Beispiel-Datenbank befinden sich in der linken Spalte alle Felder zur Definition Ihrer WordPress-Datenbank mit allen erforderlichen Feldern.
Tragen Sie folgende Daten in die Felder ein, damit Sie Daten aus Ihrer WordPress-Installation in FileMaker importieren können. Alle Daten können Sie auch der Datei „wp-config.php“ entnehmen, die sich im Root-Verzeichnis Ihrer WordPress-Installation befindet.
- Serveradresse (Host): URL, unter der Ihr Server erreichbar ist, auf der sich die Datenbank für WordPress befindet. Achtung: Um auf die Datenbank extern zugreifen zu können, muß die entsprechende Datenbank für externe Zugriffe freigegeben werden. Diese Einstellung kann in der Regel im Backend des Server-Anbieters vorgenommen werden.
- Datenbank: Name der Datenbank, in in der sich alle WordPress-Tabellen mit dem Präfix „wp_“ befinden.
- Benutzername: Benutzername für die Anmeldung an der Datenbank.
- Passwort: Passwort für die Anmeldung an der Datenbank.
- Post-Type: Wir verwenden in unserem Beispiel den Post-Type „flamingo_inbound“. Prinzipiell können durch Angabe eines anderen Post-Types auch andere Datensätze aus der WordPress-Datenbank importiert werden.
Felddefinitionen der Beispiellösung
Unsere Beispiellösung verwendet zwei Tabellen:
- Einstellungen: Enthält alle Felder für die Servereinstellungen als globale Felder
- Formulare: Enthält alle Felder für die eingelesenen Formulare
Eine Beziehung zwischen beiden Tabellen ist nicht erforderlich, weil alle Einstellungsfelder global definiert wurden.
Die Tabelle [Formulare] enthält für jedes Zielfeld ein berechnetes Textfeld mit der Berechnung:
- HoleWert (post_content; x)
Der Platzhalter [x] steht in diesem Fall für die Nummer des Eintrags. Da alle von Flamingo generierten Einträge im Feld [post_content] mit einem Carriage Return (Zeilenschalter) getrennt werden, können die Felder ganz einfach mit der Funktion „HoleWert“ extrahiert werden.
Scripte in der Beispiellösung
Die Beispiellösung enthält zwei Scripte: Ein Script für den Verbindungsaufbau mit dem MySQL-Datenbankserver und ein Script, das über die Schaltfläche [Datenimport] ausgeführt wird. Das Teilscript [ts.MySQL_OpenDatabase] wird am Anfang vom Hauptscript [sf.MySQL_Import_wp_posts] aufgerufen.
- Wenn [NICHT IstLeer(Einstellungen::wp_Datenbank) UND NICHT IstLeer(…)]
Fragt ab, ob alle Einstellungsfelder ausgefüllt wurden.
- Script ausführen [„ts.MySQL_OpenDatabase“]
Führt das Teilscript zum Öffnen einer Datenbankverbindung mit dem MySQL-Server aus. Das Teilscript liefert eine Nummer für die Connection zurück.
- Variable setzen [$Connection; Wert:Hole (ScriptErgebnis)]
Schreibt die zurückgelieferte Nummer der Connection in die Variable $Connection
- Variable setzen [$Command; Wert:MBS(„SQL.NewCommand“; $Connection; „SELECT * FROM wp_posts…)]
Erzeugt eine SQL-Abfrage auf die Tabelle [wp_posts] mit Einschränkung auf den Post-Type, der im Feld [Post-Type] angegeben wurde (in unserem Fall „flamingo-inbound“).
- Variable setzen [$result; Wert:MBS(„SQL.Execute“; $Command)]
Führt die oben aufgeführte SQL-Abfrage auf dem Server durch.
- Schleife (Anfang)
- Variable setzen [$result; Wert:MBS(„SQL.FetchNext“; $Command)]
- Verlasse Schleife wenn [$result ≠ 1]
- Neuer Datensatz/Abfrage
- Feldwert setzen [Formulare::post_date; MBS(„SQL.GetFieldAsDateTime“; $command; „post_date“)]
- Feldwert setzen [Formulare::post_content; MBS(„SQL.GetFieldAsText“; $command; „post_content“)]
- Feldwert setzen [Formulare::post_type; MBS(„SQL.GetFieldAsText“; $command; „post_type“)]
- Feldwert setzen [Formulare::ID; MBS(„SQL.GetFieldAsNumber“; $command; „ID“)]
- Schreibe Änderung Datens./Abfrage [Ohne Dialogfeld]
- Schleife (Ende)
Ausführungsschleife, in der jeweils ein neuer Datensatz erstellt wird und alle Feldwerte vom Datenbankserver in die erstellten Felder geschrieben werden.
Download FileMaker Beispieldatenbank (.fmp12)
So übernehmen Sie Scripte aus der Beispieldatei in Ihre Lösung
Scripte lassen sich einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung übertragen. Öffnen Sie einfach den Dialog Scripts verwalten, markieren Sie das gewünschte Script mit der Maus und kopieren Sie das Script in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen das zuvor kopierte Script einfach per Menübefehl [Bearbeiten – Einfügen] wieder ein.
So übernehmen Sie Tabellen aus der Beispieldatei in Ihre Lösung
Tabellen können auf mehrere Arten in eine bestehende Lösung eingefügt werden. Der einfachste Weg ist der Import der Tabelle über die Schaltfläche [Importieren…] im Dialog Datenbank verwalten. In einem nachfolgenden Dialog können dann alle Tabellen ausgewählt werden, die aus der Quell-Lösung importiert werden sollen. Diese Methode eignet sich also besonders, wenn mehrere Tabellen gleichzeitig importiert werden sollen. Soll nur eine Tabelle importiert werden, kann dies wie ein Script auch über die Zwischenablage erfolgen. Soll eine Tabelle samt Daten importiert werden, kann dies mit dem Befehl [Ablage/Datei > Datensätze importieren > Datei] erfolgen. Im Import-Dialog muß dann als Zieltabelle Neue Tabelle angegeben werden.
So übernehmen Sie Wertelisten aus der Beispieldatei in Ihre Lösung
Wertelisten können einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung importiert werden. Öffnen Sie einfach den Dialog unter [Ablage/Datei > Verwalten > Wertelisten], markieren Sie die gewünschte Werteliste mit der Maus und kopieren Sie die Werteliste in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen die zuvor kopierte Werteliste per Menübefehl [Bearbeiten – Einfügen] wieder ein.
So übernehmen Sie eigene Funktionen aus der Beispieldatei in Ihre Lösung
Klicken Sie im Dialog [Ablage/Datei > Verwalten > Eigene Funktionen…] auf die Schaltfläche [Importieren] und wählen daraufhin die Beispieldatei aus. Wählen Sie im nachfolgenden Dialog die gewünschten eigenen Funktionen aus und bestätigen den Dialog. Bitte beachten Sie, daß diese Funktion nur in FileMaker Pro Advanced, nicht jedoch in FileMaker Pro zur Verfügung steht.

Markus Schall entwickelt seit 1994 individuelle Datenbanken, Schnittstellen und Geschäftsanwendungen auf Basis von Claris FileMaker. Er ist Claris-Partner, FMM-Award-Gewinner 2011 und Entwickler der ERP-Software gFM-Business. Zudem ist er Buchautor und Gründer des M. Schall Verlags.
Verwandte Beiträge
-
FileMaker verschenkt FileMaker bei Kauf von FileMaker.
Haben Sie die Überschrift zweimal lesen müssen? Aber Sie haben richtig gelesen: Wer bis zum 20. Dezember 2012 eine Lizenz von FileMaker Pro 12 oder FileMaker Pro 12 Advanced kauft, erhält eine weitere Lizenz des gleichen Produkts kostenlos dazu. Das Angebot gilt bei Kauf einer entsprechenden Lizenz im FileMaker Webstore...
-
Automatisch von Microsoft Access zu FileMaker Pro.
Viele Unternehmen haben in den letzten Jahren ausschließlich mit Windows und oftmals mit Datenbanken unter Microsoft Access, Visual FoxPro oder auf SQL-Basis gearbeitet. Nicht nur die deutlich erhöhte Flexibilität von FileMaker, auch das stetig steigende Interesse an der Apple-Plattform sorgen dafür, daß FileMaker immer mehr in den Fokus von Unternehmen...
-
FileMaker veröffentlicht FileMaker Go 1.2 mit neuen Funktionen.
Am heutigen Tag hat FileMaker die Datenbank-App FileMaker Go für das Apple iPhone und iPad aktualisiert. Die neue Version 1.2 unterstützt nun auch Linien-, Balken-, Flächen- und Tortendiagramme aus FileMaker 11 direkt auf dem iPhone oder iPad. Auf diese Weise können Geschäftsdaten auch grafisch unterwegs ausgetauscht und analysiert werden. Mit...






