Hallo,
ich habe ein Suchformular mit ausschließlich SELECT-Feldern die ich mit Javascript aktivieren oder deaktivieren kann. Wenn ich das Formular abschicke prüfe ich mittels if(is_null) ob das Selectfeld aktiviert oder deaktiviert war.
In meiner Abfrage an die MySQL-DB möchte ich nun in der WHERE-Klausel die aktivierten Felder mit AND verknüpfen, leider bekomme ich das nicht so hin da ich immer ein AND zuviel habe. Ich bin mir auch sicher wenn man sich meinen Code anschaut das es bestimmt einfache zu schreiben ist.
Liebe Grüße
Maik
ich habe ein Suchformular mit ausschließlich SELECT-Feldern die ich mit Javascript aktivieren oder deaktivieren kann. Wenn ich das Formular abschicke prüfe ich mittels if(is_null) ob das Selectfeld aktiviert oder deaktiviert war.
In meiner Abfrage an die MySQL-DB möchte ich nun in der WHERE-Klausel die aktivierten Felder mit AND verknüpfen, leider bekomme ich das nicht so hin da ich immer ein AND zuviel habe. Ich bin mir auch sicher wenn man sich meinen Code anschaut das es bestimmt einfache zu schreiben ist.
PHP-Code:
if(is_null($lagerort))
{
$lagerort = "";
}else{
$lagerort = "te.id_lagerort = $lagerort";
$lobedingung = " AND ";
}
if(is_null($hersteller))
{
$hersteller = "";
}else{
$hersteller = "te.id_hersteller = $hersteller";
$hebedingung = " AND ";
}
if(is_null($textilart))
{
$textilart = "";
}else{
$textilart = "te.id_textilart = $textilart";
$tabedingung = " AND ";
}
if(is_null($geschlecht))
{
$geschlecht = "";
}else{
$geschlecht = "te.id_geschlecht = $geschlecht";
$gebedingung = " AND ";
}
if(is_null($groessen))
{
$groessen = "";
}else{
$groessen = "te.id_groessen = $groessen";
$grbedingung = " AND ";
}
if(is_null($farben))
{
$farben = "";
}else{
$farben = "te.id_farben = $farben";
}
echo"
SELECT
te.id, te.id_lagerort, te.id_hersteller, te.id_textilart, te.id_geschlecht, te.id_groessen, te.id_farben, SUM(anzahl) AS anzahl,
lo.id AS lagerortid, lo.lagerort,
he.id AS herstellerid, he.hersteller,
ta.id AS textilartid, ta.textilart,
ge.id AS geschlechtid, ge.geschlecht,
gr.id AS groessenid, gr.groessen,
fa.id AS farbenid, fa.farben
FROM
tl_textilien AS te
LEFT JOIN
tl_lagerorte AS lo
ON
lo.id = te.id_lagerort
LEFT JOIN
tl_hersteller AS he
ON
he.id = te.id_hersteller
LEFT JOIN
tl_textilart AS ta
ON
ta.id = te.id_textilart
LEFT JOIN
tl_geschlecht AS ge
ON
ge.id = te.id_geschlecht
LEFT JOIN
tl_groessen AS gr
ON
gr.id = te.id_groessen
LEFT JOIN
tl_farben AS fa
ON
fa.id = te.id_farben
WHERE
$lagerort $lobedingung $hersteller $hebedingung $textilart $tabedingung $geschlecht $gebedingung $groessen $grbedingung $farben
ORDER BY
lo.lagerort ASC, he.hersteller ASC, ta.textilart ASC";
Maik
Kommentar