Hallo zusammen,
ich sitze an einem Problem welches mir wirklich den Schlaf raubt und ich weiß einfach nicht weiter. Ich hoffe ihr könnt mir helfen.
Ich setze über ein Array, welches Variablen über die URL entgegen nimmt eine mysql-Abfrage zusammen. Das ganze kann dann z.B. so aussehen:
PHP-Code:
$abfrage = "SELECT * FROM `eintraege` WHERE `genre`='klassik' OR `genre`='rock' AND `datum` BETWEEN '1980-01-01' AND '2011-12-30'";
Das funktioniert wunderbar und klappt auch mit zig anderen Variablen und Kombinationen.
Bis auf eine, steht in der abfrage:
PHP-Code:
$abfrage = "SELECT * FROM `eintraege` WHERE `genre`='klassik' OR `genre`='rock' OR `genre`='soul' AND `datum` BETWEEN '1980-01-01' AND '2011-12-30'";
wird der Zeitraum also
PHP-Code:
BETWEEN '1980-01-01' AND '2011-12-30'
einfach "vergessen". Sobald die Variable 'soul' mit in der Abfrage steht, tritt dieser fehler auf. Ich hatte das vorher schon einmal, bin dann auf die Idee gekommen das Array vorher zu sortieren, das hat dann auch geklappt. Aber jetzt steh ich eben wieder vor dem Problem. Das Array mit den "Genres" wird sortiert und der Zeitraum wird an die Abfrage angehängt.
In der oben genannten Abfrage tritt kein Fehler auf, es wird einfach nur der Zeitraum ignoriert, sprich es werden auch Einträge vor dem 01.01.1980 und nach dem 30.12.2011 angezeigt. Die Einschränkungen durch die Genres werden aber akzeptiert.
Super verrückt wird es aber jetzt, würde ich die Abfrage "händisch" folgendermaßen umstellen, würde es klappen
PHP-Code:
$abfrage = "SELECT * FROM `eintraege` WHERE `genre`='soul' OR `genre`='klassik' OR `genre`='rock' AND `datum` BETWEEN '1980-01-01' AND '2011-12-30'";
Kann ich aber nicht machen, da ich das Array vorher alphabetisch sortiere.
Hab auch andere Sortierreihenfolgen ausprobiert, leider ohne Erfolg.
Hat jemand eine Idee woran das liegen könnte, bin grad ziemlich ratlos?
Gruß
Lioz