Read data from a database

Beispielszenario

Es sollen alle EU-Länder aus der Datenbank gelesen werden und in einem Prozessschritt in ein Auswahlfeld eingetragen werden.

Voraussetzungen

  1. Es existiert ein Prozessschritt mit einem Auswahlfeld darin
  2. Ein Businesslogik Objekt vom Typ "Ausführen bevor ein Prozessschritt dargestellt wird" wurde angelegt
  3. Folgende Daten sind dort hinterlegt:
    • Pfad: z.b. fileadmin/example/ReadDatabase.php
    • Klasse: ReadDatabase
    • Methode: fillEUCountries

Die Quellcodedatei kann hier heruntergeladen werden: Download (Wichtig: die Datei muss in den im Businesslogik Objekt angegebenen Pfad kopiert werden)

Zunächst werden alle Datensätze aus der Tabelle static_countries gelesen, die das Flag cn_eu_member = 1 haben. Diese Datensätze werden daraufhin aufbereitet und mit dem Kommando presetData an positionIt zurückgegeben.

  1. class ReadDatabase {
  2.  
  3. public function fillEUCountries($processId, $pre_stepid, $cur_stepid,
  4. $sessiondata, $htmlcode, $prestepdata) {
  5.  
  6. $res = $GLOBALS['TYPO3_DB'] -> exec_SELECTquery('uid,cn_official_name_en',
  7. 'static_countries', 'cn_eu_member = 1');
  8.  
  9. // create an array in the form of
  10. // (option1 => value1, option2 => value2, ...)
  11. $options = array();
  12. while ($row = $GLOBALS['TYPO3_DB'] -> sql_fetch_assoc($res)) {
  13. $uid = $row['uid'];
  14. $title = $row['cn_official_name_en'];
  15.  
  16. $options[$uid] = $title;
  17. }
  18.  
  19. // create the command that will be returned to positionIt
  20. $command = array();
  21. $command['presetData']['countries_select']['values'] = $options;
  22.  
  23. // if you want to preselect an option, you can do this
  24. $command['presetData']['countries_select']['checked'] = 54;
  25. // 54 is the uid of the German data record
  26.  
  27. // finally, we return our command
  28. return array($command);
  29. }
  30. }

Hinweis: Der String countries_select muss je nach Prozessschritt angepasst werden. Dieser Bezieht sich auf den technischen Namen eines Auswahllisten Objekts.

© 2017 Ososoft GmbH