eindelijk een na een uur forum lezen eindelijk mijn probleem waarop misschien iemand wel een antwoord op weet.
Ik heb namelijk een sql query :
SELECT * FROM records WHERE list_item ='J' AND country LIKE '%alsou%' OR year LIKE '%alsou%' OR artist LIKE '%alsou%' OR title LIKE '%alsou%' OR type LIKE '%alsou%' LIMIT 0,20
het probleem zit 'm in list_item = 'J'
zonder dit doet hij het prima en ook als alles na de 'J' weggehaald wordt werkt het maar nu wil ik enkel degene die door de J uitgefilterd worden laten zien.
Alsou is het voorbeeld in de zoekstring wat ik gebruikte en heeft niks met de code te maken.
nu selecteer je inderdaad zoals Mebus ook al een beetje zegt de mensen waar list_item letterlijk J is, ik weet niet of dat de bedoeling is, maar anders moet je hier ook een LIKE van maken.
'zoekterm%' - selecteert de resultaten die beginnen met de zoekterm
'%zoekterm' - selecteert de resultaten die eindigen met de zoekterm
mocht je gewoon alle mensen willen selecteren waar een j in voorkomt moet je gewoon de like gebruiken zoals je nu ook doet, met 2 procent-tekens dus.
het is bijna altijd een slecht idee om een aantal OR's en AND's achter elkaar te zetten zonder haakjes te gebruiken. Dat geeft eigenlijk altijd onverwachte resultaten.
Probeer eens in een gewone Nederlandse zin te beschrijven welke resultaten je query moet opleveren?
list_item = char(1) en geeft eigenlijk aan of de cd wel of niet in de lijst mag verschijnen
die AND's en OR's is eigenlijk bedoeld voor de lege query wanneer niet naar artiest land enzo verder gezocht wordt
hier is eigenlijk de code query (die ik net plakte was de output query.
SELECT * FROM records WHERE list_item ='N' AND country LIKE '%" .$keyword. "%' OR year LIKE '%" .$keyword. "%' OR artist LIKE '%" .$keyword. "%' OR title LIKE '%" .$keyword. "%' OR type LIKE '%" .$keyword. "%'";
Zoals ik al zei, een goed gebruik van haakjes. En verder je query netjes uitschrijven:
<?php
$sql = "
SELECT *
FROM records
WHERE
list_item ='J'
AND
(
country LIKE '%" .$keyword. "%'
OR year LIKE '%" .$keyword. "%'
OR artist LIKE '%" .$keyword. "%'
OR title LIKE '%" .$keyword. "%'
OR type LIKE '%" .$keyword. "%'
)
";
?>