Hoi forumleden,

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.

Weet iemand hoe dit zou kunnen komen.

Alvast bedankt

Rick
Hoi rick,

list_item = varchar(16)

bijvoorbeeld dus?

Zo ja jij hebt dus een word genaamd jan

En je wilt alles selecteren wat met de letter j begint?

edit: typo
edit: even netjes voorstellen natuurlijk
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.
Algemene opmerking:

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?
Wel heftig hoor nu al reacties geweldig

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. "%'";

Rick
is J of N een kleine letter of een hoofdletter in je record?
@Jan,

Hier kan je het eventueel bekijken
http://www.bearecords.nl/2shop.php

Alsou heb ik als voorbeeld genomen omdat namelijk die een waarde 'N' in list_item heeft anders is het 'n 'J'

Nu is die code een souvenir van een voorganger die ik moet verbouwen.

Rick

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. "%'
)
";
?>
@Mebus

enkel hoofdletters
Dank je Jan, ga ik het nu even proberen

Reageren