Hallo,
ich habe folgendes Problem. In einer Extension ist eine Suche eingebaut. Man soll eine Tabelle durch diverse Kriterien durchsuchen können. Das Array, was die Suchkriterien übergibt sieht folgendermaßen aus:
myextension[plz][0] = 8
myextension[plz][1] = 9
myextension[plz][2] = 0
myextension[gebiet] = 3
myextension[noch_etwas][0] = ein_wert
myextension[noch_etwas][1] = noch_ein_wert
Wie kann ich aus diesem Array am besten eine Abfrage in MySQL erstellen? Die Werte auf der 2. Ebene sind stets als Alternativ ("OR") zu verstehen. Daher mein Ansatz:
function generateWhere($sql_arr) {
// print_r($sql_arr); // DEBUG
foreach($sql_arr as $key => $value) {
// Array enthält mehrere Objekte
if( sizeof($sql_arr[$key]) > 1 ) {
$tempArray = array();
foreach($sql_arr[$key] as $values) {
$tempArray[] = $key . " = ". $values;
}
$where[] = "(" . implode(" OR ",$tempArray) . ")";
// Array enthält genau ein Objekt
} elseif(sizeof($sql_arr[$key]) == 1 ) {
$where[] = $key . " = ". $value;
}
}
return implode(" AND ", $where);
}
Das Ergebnis passt an dieser Stelle auch. Das Problem ist nun, dass die Postleitzahl ja nicht "8" ist, sondern lediglich mit der 8 anfangen soll. Wie lautet denn hier nun die Abfrage??
Über jeglichen Ansatz würde ich mich freunen, denn ich hab nicht mal nen blassen Schimmer, wo ich hier ansetzen kann. #angry#
Gruß,Tim