Hallo,
für eine Datenbank abfrage aus einem Multiple Select formular (http://server.cwd.at/jobforum1/suchen.php3) bau ich mir mit php den MySQL query zusammen.
Ich mache folgendes für jedes feld:
/* BERUFSGRUPPE */
$leer = "0";
for ($i=0;$i<count($berufsgruppe);$i++):
if ($berufsgruppe[$i] == "alle") {
/* echo "alles gewählt"; */
}else{
if ($leer == "0") {
$query .= " AND berufsgruppezw.berufsgruppeid = '$berufsgruppe[$i]'";
$leer = "1";
}else{
$query .= " OR berufsgruppezw.berufsgruppeid = '$berufsgruppe[$i]'";
}
}
endfor;
$leer="0";
/* END BERUFSGRUPPE */
Bei einer Suche wo von jedem feld 2 stück gewählt wurde kommt daher so ein query zusammen:
SELECT DISTINCT ausschreibung.ausschreibungsid FROM ausschreibung,berufsgruppezw,spezialbereichzw,regionzw,artzw WHERE ausschreibung.ausart = 'gesuch' AND berufsgruppezw.berufsgruppeid = '11' OR berufsgruppezw.berufsgruppeid = '12' AND spezialbereichzw.spezialbereichid = '16' OR spezialbereichzw.spezialbereichid = '5' AND regionzw.regionid = '11' OR regionzw.regionid = '6' AND artzw.artid = '6' OR artzw.artid = '7';
Durch den Join über 5 Tabellen ist das ganze aber so dermassen langsam das so ein query direkt an den mysql client abgegeben ca. 5 minuten braucht, gibt es da auch einen anderen weg?
Ich habe die befürchtung daß das ganze problem daher kommt das es multiple select felder sind, wenn ich von jeder option nur ein feld hätte wäre es um einiges leichter :(
Danke für eure hilfe
lg
Ludwig