Maya: OOP für Datenbankabfrage

Hallo,

ich habe ein ABfrageformular aufgebaut, mit dem man flexibel mit mehreren Variablen sich Inhalte (Zeilen)aus der datenbank abfragen lassen kann. Also, man kann z.B. Fragen nach Name, Alter und Wohnort.
Bisher habe ich das so gemacht, dass jede mögliche Kombination aus den Abfragefeldern mit if-Fällen untereinander im Script aufgelistet werden. Das klappt schon, nur fage ich mich, ob das nicht eleganter geht mit OOP. Mittels Google habe ich bisher nichts gefunden.
Weiß jemand wo man das finden kann ?

  1. Hai,

    mal ein simples Beispiel:

    Du kannst dir eine SearchCondition-Klasse erstellen.
    Diese besitzt eine Liste von SearchExpressions. Jede SearchExpression besitzt den Namen der Datenbankspalte und den Wert.

    Suchkriterien hinzuzufuegen ginge dann wie folgt:

    $sc = new SearchCondition;  
    $sc->AddExrepssion('name','maruis');  
    $sc->AddExrepssion('age',45);  
    
    

    Eine Retrieve-Methode, zum Auslesen der Daten, kann dann so aussehen:

    public function Retrieve($SearchCondition)  
    {  
       $sql = "SELECT [..] FROM [..] WHERE ".  
       $sql .= $SearchCondition->Buildcondition();  
       // [..]  
    }
    

    Letzterer Aufruf liefert dir dann das entsprechende Where-Statement.

    Das Beispiel soll nur veranschaulichen, was fuer Moeglichkeiten es gibt.

    Der SearchConditionHandler muesste dann natuerlich noch um diverse Features erweitert werde:

    • Operatoren: Like, Equals, >=, <=, etc..
    • Verknuepfungen: AND, OR
    • Kapselung, also die Moeglicheit mehrere Statement zu kapseln und untereinander zu verknuepfen. Bsp: ( (name='test' AND age=23) OR xy = 'te')
    • Spaltentypen: Integer, varchar, etc..
    • etc.. pp..

    MfG,
    Sympatisant

    --
    "If the future isn't bright, at least it is colorful"