Hjälp, jag har suttit och stirrat mig blind på en sql-fråga som jag inte får att fungera.
Jag vill hämta ut alla titlar som börjar på siffrorna 0-9 i en viss kategori. Problemet är att jag får ut alla filmer med titel 0-9 oavsett kategori. Variabeln $kat har rätt värde det har jag kollat.
Så här ser koden ut:
$sqlstatement="SELECT BILD, VNAMN, PRIS, ARTNR FROM DVD WHERE VNAMN LIKE '0%' OR VNAMN LIKE '1%' OR VNAMN LIKE '2%' OR VNAMN LIKE '3%' OR VNAMN LIKE '4%' OR VNAMN LIKE '5%' OR VNAMN LIKE '6%' OR VNAMN LIKE '7%' OR VNAMN LIKE '8%' OR VNAMN LIKE '9%' AND KATNAMN = '$kat' ORDER BY VNAMN ASC";
Har en liknande sql-fråga som jag dock får att fungera, den ser ut såhär:
$sqlstatement="SELECT BILD, VNAMN, PRIS, ARTNR FROM DVD WHERE VNAMN LIKE '$str%' AND KATNAMN = '$kat' ORDER BY VNAMN ASC";
Nån som ser vad som är fel med den översta sql-frågan?
And binder ihop med bara de som börjar på 9, såsom du har skrivit frågan. Sätt en parentes runt dina or-villkor:
$sqlstatement="SELECT BILD, VNAMN, PRIS, ARTNR FROM DVD WHERE (VNAMN LIKE '0%' OR VNAMN LIKE '1%' OR VNAMN LIKE '2%' OR VNAMN LIKE '3%' OR VNAMN LIKE '4%' OR VNAMN LIKE '5%' OR VNAMN LIKE '6%' OR VNAMN LIKE '7%' OR VNAMN LIKE '8%' OR VNAMN LIKE '9%') AND KATNAMN = '$kat' ORDER BY VNAMN ASC";