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"
"If the future isn't bright, at least it is colorful"