Ich habe folgende Abfrage auf einer PHP-Seite:
$result=mysql_query("select land, manufaktur, serie, kuenstler, bradexnr, tellername, erscheinjahr, listenpreis, versandpreis, beschreibung, thumbnail, anzahl from teller where (nr like '%$stichw%' OR land like '%$stichw%' OR manufaktur like '%$stichw%' OR serie like '%$stichw%' OR kuenstler like '%$stichw%' OR bradexnr like '%$stichw%' OR tellername like '%$stichw%' OR erscheinjahr like '%$stichw%' OR listenpreis like '%$stichw%' OR versandpreis like '%$stichw%' OR beschreibung like '%$stichw%' OR suchbegriffe like '%$stichw%') AND (nr like '%$stichw2%' OR land like '%$stichw2%' OR manufaktur like '%$stichw2%' OR serie like '%$stichw2%' OR kuenstler like '%$stichw2%' OR bradexnr like '%$stichw2%' OR tellername like '%$stichw2%' OR erscheinjahr like '%$stichw2%' OR listenpreis like '%$stichw2%' OR versandpreis like '%$stichw2%' OR beschreibung like '%$stichw2%' OR suchbegriffe like '%$stichw2%') order by manufaktur");
tab_out($result);
diese funktioniert auch, wenn ich aber noch eine weitere Bedingung (wie folgt) dazu packe, wird das Ergebnis so verfälscht, dass die dritte Bedingung als OR-Abfrage und nicht als AND-Abfrage gewertet wird. Ist der Code vielleicht zu lang?
$result=mysql_query("select land, manufaktur, serie, kuenstler, bradexnr, tellername, erscheinjahr, listenpreis, versandpreis, beschreibung, thumbnail, anzahl from teller where manufaktur like '%manuf%' AND (nr like '%$stichw%' OR land like '%$stichw%' OR serie like '%$stichw%' OR kuenstler like '%$stichw%' OR bradexnr like '%$stichw%' OR tellername like '%$stichw%' OR erscheinjahr like '%$stichw%' OR listenpreis like '%$stichw%' OR versandpreis like '%$stichw%' OR beschreibung like '%$stichw%' OR suchbegriffe like '%$stichw%') AND (nr like '%$stichw2%' OR land like '%$stichw2%' OR serie like '%$stichw2%' OR kuenstler like '%$stichw2%' OR bradexnr like '%$stichw2%' OR tellername like '%$stichw2%' OR erscheinjahr like '%$stichw2%' OR listenpreis like '%$stichw2%' OR versandpreis like '%$stichw2%' OR beschreibung like '%$stichw2%' OR suchbegriffe like '%$stichw2%') order by manufaktur");
tab_out($result);
$result=mysql_query("select land, manufaktur, serie, kuenstler, bradexnr, tellername, erscheinjahr, listenpreis, versandpreis, beschreibung, thumbnail, anzahl from teller where (nr like '%$stichw%' OR land like '%$stichw%' OR manufaktur like '%$stichw%' OR serie like '%$stichw%' OR kuenstler like '%$stichw%' OR bradexnr like '%$stichw%' OR tellername like '%$stichw%' OR erscheinjahr like '%$stichw%' OR listenpreis like '%$stichw%' OR versandpreis like '%$stichw%' OR beschreibung like '%$stichw%' OR suchbegriffe like '%$stichw%') AND (nr like '%$stichw2%' OR land like '%$stichw2%' OR manufaktur like '%$stichw2%' OR serie like '%$stichw2%' OR kuenstler like '%$stichw2%' OR bradexnr like '%$stichw2%' OR tellername like '%$stichw2%' OR erscheinjahr like '%$stichw2%' OR listenpreis like '%$stichw2%' OR versandpreis like '%$stichw2%' OR beschreibung like '%$stichw2%' OR suchbegriffe like '%$stichw2%') order by manufaktur");
tab_out($result);
diese funktioniert auch, wenn ich aber noch eine weitere Bedingung (wie folgt) dazu packe, wird das Ergebnis so verfälscht, dass die dritte Bedingung als OR-Abfrage und nicht als AND-Abfrage gewertet wird. Ist der Code vielleicht zu lang?
$result=mysql_query("select land, manufaktur, serie, kuenstler, bradexnr, tellername, erscheinjahr, listenpreis, versandpreis, beschreibung, thumbnail, anzahl from teller where manufaktur like '%manuf%' AND (nr like '%$stichw%' OR land like '%$stichw%' OR serie like '%$stichw%' OR kuenstler like '%$stichw%' OR bradexnr like '%$stichw%' OR tellername like '%$stichw%' OR erscheinjahr like '%$stichw%' OR listenpreis like '%$stichw%' OR versandpreis like '%$stichw%' OR beschreibung like '%$stichw%' OR suchbegriffe like '%$stichw%') AND (nr like '%$stichw2%' OR land like '%$stichw2%' OR serie like '%$stichw2%' OR kuenstler like '%$stichw2%' OR bradexnr like '%$stichw2%' OR tellername like '%$stichw2%' OR erscheinjahr like '%$stichw2%' OR listenpreis like '%$stichw2%' OR versandpreis like '%$stichw2%' OR beschreibung like '%$stichw2%' OR suchbegriffe like '%$stichw2%') order by manufaktur");
tab_out($result);
Kommentar