Dropdown-Listenfeld mit SQL Abfrage

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
RalphW
Beiträge: 99
Registriert: 20. Jun 2016, 14:42
Wohnort: Austria

Dropdown-Listenfeld mit SQL Abfrage

Beitrag von RalphW »

Das Dropdown-Listenfeld ist ja eine schöne Sache. Wäre da nicht der Umstand, dass die Daten manuell gefüllt werden müssen und wenn sich etwas verändert (z.B. ein Eintrag aus der Liste entfernt werden muss) verschiebt sich alles und die Daten stimmen nicht mehr.
Es wäre daher eine vielleicht eine Möglichkeit eine Checkbox "SQL Statement" einzuführen und die Wertliste mit einer SQL Abfrage zu befüllen, die 2 Felder zurück gibt:
  1. Den Index, der dann in der Datenbank eingetragen wird.
  2. Der Text, der in Dropdown-Listenfeld angezeigt wird.
Mit dem SQL Statement könnte man einfach Daten aus der Datenbank zusammensammeln und entsprechend anzeigen. Es wäre auch möglich eine quasi "statische" Liste mit eigenem Index selbst zu definieren.
Beispiel:

Code: Alles auswählen

SELECT id, val FROM (
    SELECT 1 AS id, 'Test1' AS val
    UNION
    SELECT 2 AS id, 'Test2' AS val
    UNION
    SELECT 4 AS id, 'Test4' AS val
    ) AS box;
Das sieht jetzt kompliziert aus (vielleicht gibt es auch eine andere einfachere Möglichkeit) aber hier ist eben "Test3" ohne Auswirkungen auf die anderen Einträge entfernt worden.

Eventuell könnte man noch eine 3 Spalte einführen, wo vielleicht alle Daten noch angezeigt werden, aber für Neuanlagen oder Änderungen (hier im Beispiel "Test3") nicht mehr ausgewählt werden können:

Code: Alles auswählen

SELECT id, sho, val FROM (
    SELECT 1 AS id, 1 AS sho, 'Test1' AS val
    UNION
    SELECT 2 AS id, 1 AS sho, 'Test2' AS val
    UNION
    SELECT 3 AS id, 0 AS sho, 'Test3' AS val
    UNION
    SELECT 4 AS id, 1 AS sho, 'Test4' AS val
    ) AS box;
 
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Dropdown-Listenfeld mit SQL Abfrage

Beitrag von XimeX »

Antworten