Supportnet / Forum / Datenbanken
MYSQL: filter-problem
Frage
$query = "SELECT * FROM movies WHERE genre LIKE '$agenre' AND NOT genre LIKE '$bgenre' AND title LIKE '$title' AND owner LIKE '$owner' AND actor LIKE '$actor' AND director LIKE '$director' ORDER BY title";
bringt irgendwie 0 treffer.
$query = "SELECT * FROM movies WHERE genre LIKE '$agenre' AND title LIKE '$title' AND owner LIKE '$owner' AND actor LIKE '$actor' AND director LIKE '$director' ORDER BY title";
funktioniert...
gibbet da ein trick? warum versteht er das nicht?
fehlermeldung gibt es kein ;/
thx
muab
Antwort 1 von draack
Hi,
1. Du benutzt den "LIKE" Operator ohne zu wissen, was Du da tust. "LIKE" hat nur dann einen Sinn, wenn Du ein Jokerzeichen (i.d.R. "%") benutzt. Sonst ist es vollkommener Unsinn. Ein einfaches "=" tut's hier auch. (Nebenbei: Benötigst Du wirklich alle Spalten im Resultset? Du solltest Dich auf die beschränken, die Du wirklich benutzen willst. Mit einem "*" kannst Du leicht unnötige Last generieren.)
2. Da es sich (anscheinend) um einen PHP-Codeschnipsel handelt, solltest Du Dir einfach mal anzeigen lassen was wirklich aus dem Statement gebaut wird. Dann wird's i.d.R. klarer ...
Tschö,
Volker
1. Du benutzt den "LIKE" Operator ohne zu wissen, was Du da tust. "LIKE" hat nur dann einen Sinn, wenn Du ein Jokerzeichen (i.d.R. "%") benutzt. Sonst ist es vollkommener Unsinn. Ein einfaches "=" tut's hier auch. (Nebenbei: Benötigst Du wirklich alle Spalten im Resultset? Du solltest Dich auf die beschränken, die Du wirklich benutzen willst. Mit einem "*" kannst Du leicht unnötige Last generieren.)
2. Da es sich (anscheinend) um einen PHP-Codeschnipsel handelt, solltest Du Dir einfach mal anzeigen lassen was wirklich aus dem Statement gebaut wird. Dann wird's i.d.R. klarer ...
Tschö,
Volker

