databaseDynamische Filteroptionen

Lassen Sie Filteroptionen automatisch aus Ihren Daten generieren mit SQL-Abfragen für dynamische, datengesteuerte Filterung.

Stellen Sie sich vor, Ihre Filteroptionen aktualisieren sich automatisch basierend auf Ihren tatsächlichen Daten - wie ein intelligenter Assistent, der immer die aktuellsten und relevantesten Auswahlmöglichkeiten bereitstellt, ohne dass Sie manuell Listen pflegen müssen.

Was sind dynamische Filteroptionen?

Dynamische Filteroptionen verwenden SQL-Abfragen, um Filter automatisch mit Werten aus Ihren Daten zu befüllen, anstatt diese manuell einzugeben:

  • Automatisch aktualisiert - Filteroptionen spiegeln immer Ihre aktuellen Daten wider

  • SQL-gesteuert - Schreiben Sie Abfragen, um verfügbare Werte zu ermitteln

  • Anpassung an andere Filter - Optionen können sich basierend auf anderen Filtern ändern

  • Datengetrieben - Keine manuellen Listen mehr pflegen

  • Intelligent gefiltert - Zeigen Sie nur relevante, verfügbare Optionen

Beispiel aus der Praxis: Anstatt manuell alle Abteilungsnamen einzugeben, schreibt Ihr Filter eine SQL-Abfrage wie SELECT DISTINCT abteilung FROM mitarbeiter WHERE aktiv = true LIMIT 10000, um automatisch alle aktiven Abteilungen als Filteroptionen zu erhalten.

Dynamisch vs. manuell gesteuerte Filter

Filteroptionen werden automatisch aus Daten generiert:

  • Immer aktuell: Optionen spiegeln den aktuellen Datenbestand wider

  • Wartungsfrei: Keine manuellen Updates nötig wenn sich Daten ändern

  • Intelligent: Können sich basierend auf anderen Filterauswahlen ändern

  • Datengenau: Zeigen nur Werte, die tatsächlich in den Daten existieren

  • Performant: Abfragen können optimiert und gecacht werden

Beste Anwendung für:

  • Abteilungen, die sich häufig ändern

  • Status-Listen aus aktuellen Projekten

  • Zeiträume basierend auf verfügbaren Daten

  • Kategorien, die dynamisch sind

  • Abhängige Filteroptionen (Stadt → Postleitzahl)

Wie dynamische Filter funktionieren

Das Grundprinzip:

  1. SQL-Abfrage schreiben → Die erste Spalte der Ergebnisse wird zu Ihren Filteroptionen

  2. Automatische Aktualisierung → Filter führt die Abfrage aus und lädt die aktuellen Werte

  3. Variable Integration → Andere Filter können als $variablenname in der Abfrage verwendet werden

  4. Intelligente Anpassung → Filteroptionen ändern sich basierend auf anderen Filterauswahlen

Beispiel-Ablauf:

  • Benutzer wählt "Öffentliche Sicherheit" im Abteilungsfilter

  • Status-Filter führt SQL-Abfrage aus: WHERE abteilung = 'Öffentliche Sicherheit'

  • Status-Optionen zeigen nur relevante Werte für diese Abteilung

  • Bei Abteilungsänderung aktualisieren sich die Status-Optionen automatisch

Dynamische Filter einrichten

1

Filter erstellen

  1. Filter erstellen und "Auswahlliste" als Eingabeoption wählen

  2. Im Bereich "Verfügbare Werte" finden Sie zwei Optionen:

    • "Eigene Liste" (manuelle Eingabe)

    • "Abfrage" (SQL-gesteuert)

  3. "Abfrage" auswählen für dynamische Optionen

circle-info

Die "Abfrage"-Option ist nur für Filter mit Auswahllisten verfügbar, nicht für Eingabefelder oder Kalender.

2

SQL-Abfrage schreiben und testen

  1. "Bearbeiten" klicken um den SQL-Editor zu öffnen

  2. SQL-Abfrage schreiben, die Optionen in der ersten Spalte zurückgibt:

  1. "Ausführen" klicken um die Abfrage zu testen

  2. Ergebnisse in der Vorschau überprüfen:

    • Erste Spalte: Wird zu Ihren Filteroptionen

    • Zusätzliche Spalten: Werden ignoriert, können aber zur Orientierung helfen, hier allerdings auf Duplikate achten!

    • Keine leeren Werte: NULL oder leere Strings werden automatisch ausgefiltert

  3. "Speichern" klicken wenn die Abfrage korrekt ist

Wichtige SQL-Elemente:

3

Filter speichern und testen

  1. Filter speichern - die SQL-Abfrage wird automatisch mit gespeichert

  2. Filter im Bericht testen:

    • Filter öffnen → sollte die Werte aus Ihrer SQL-Abfrage zeigen

    • Andere Filter ändern → abhängige Filter sollten sich aktualisieren

    • Daten im System ändern → Filter sollten neue Optionen zeigen

circle-check

Erweiterte Techniken

Abhängige Filter erstellen

Erstellen Sie Filter, die auf andere Filter reagieren:

Filter-Verkettung:

  1. Bundesland-Filter → Benutzer wählt "Bayern"

  2. Stadt-Filter → Zeigt nur bayerische Städte

  3. Bezirk-Filter → Zeigt nur Bezirke der gewählten Stadt

Optimierung

Für große Datenmengen optimieren Sie Ihre Abfragen:

Praktische Beispiele

Beispiel 1: Abteilungsfilter mit aktiven Mitarbeitern

Beispiel 2: Statusfilter basierend auf Projekt und Jahr

Fehlerbehebung

"Keine Optionen verfügbar"

Mögliche Ursachen:

  • SQL-Abfrage gibt keine Ergebnisse zurück

  • Erste Spalte enthält nur NULL-Werte

Lösungsansätze:

"Filter aktualisiert sich nicht"

Häufige Probleme:

  • Variablennamen stimmen nicht mit anderen Filtern überein

  • SQL-Syntax-Fehler verhindert Ausführung

  • Speicher-Probleme bei sehr häufigen Änderungen

Diagnose:

  1. SQL-Editor öffnen → "Ausführen" klicken → Fehlermeldungen prüfen

  2. Variable Namen überprüfen → Müssen exakt mit Filter-Systemnamen übereinstimmen

  3. Browser-Cache leeren → Manchmal hilft ein Neuladen der Seite

"Leistungs-Probleme"

Für langsame Abfragen:

circle-exclamation

Best Practices

SQL-Abfragen schreiben

  1. Erste Spalte ist entscheidend - Nur die erste Spalte wird für Optionen verwendet

  2. DISTINCT verwenden - Vermeidet doppelte Einträge in der Dropdown-Liste

  3. ORDER BY hinzufügen - Sortiert Optionen für bessere Benutzererfahrung

  4. NULL-Werte filtern - Leere Optionen vermeiden

  5. Leistung beachten - Immer LIMIT 10000 verwenden (Pflicht)

Variablen verwenden

  1. Exakte Namen verwenden - $filter_systemname muss genau mit dem Filter-Systemnamen (Slug) übereinstimmen

  2. NULL-Behandlung - Berücksichtigen Sie leere Filter: WHERE (status = $status OR $status IS NULL)

  3. Typen beachten - Text-, Zahlen- und Datumsfilter haben verschiedene Formate

Wartung und Überwachung

  1. Regelmäßig testen - Überprüfen Sie Filter nach Datenbank-Änderungen

  2. Leistung überwachen - Langsame Abfragen können die Benutzererfahrung beeinträchtigen (maximal 10.000 Zeilen möglich)

  3. Dokumentation - Kommentieren Sie komplexe SQL-Abfragen für andere Bearbeiter

circle-check

Zuletzt aktualisiert

War das hilfreich?