Archief - PHP advanced search

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

geoffe

Legacy Member
Beste,

Ik heb ene probleem met een advanced search. Ik wil namelijk op verschillende velden zoeken, en dit voor verschillende kolommen in éénzelfde tabel.

Ziehier mijn query, ik krijg altijd nul als resultaat:

Code:
SELECT *
FROM `gegevens_model`
WHERE (
(
`variabele_id` =7
AND `waarde_nl` LIKE '%3 - 9 KW%'
)
AND (
`variabele_id` =6
AND `waarde_nl` LIKE '%gietijzer%'
)
);

En ik weet zeker dat er resultaten zijn. Kan iemand mij helpen?

adrianhates

Legacy Member
SELECT *
FROM `gegevens_model`
WHERE (
(
`variabele_id` =7
AND `waarde_nl` LIKE '%3 - 9 KW%'
)
OR (
`variabele_id` =6
AND `waarde_nl` LIKE '%gietijzer%'
)
);

:)

geoffe

Legacy Member
adrianhates, bedankt voor de reactie, maar ik moet dus wel kunnen zoeken op beiden waarden. Ik zal het eens testen.

adrianhates

Legacy Member
ja dit lijkt mij toch logisch?

Als uwe query ni werkt moete dieje is hardop lezen int nederlands :)

geoffe

Legacy Member
Wanneer ik het test, loopt de query mooi, en krijg ik resultaten, nu krijg ik dus resultaten waarvan variabele_id = 7 and waarde_nl = gietijzer alsook variabele_id=6 and waarde_nl = gietijzer. Dus beiden waarden zijn correct, en daarvan haal ik de id op, en geef ik het product weer.

MAAR:

Hij heeft ook alle waarden waarvan variabele_id = 6 and waarde_nl = gietijzer, maar waarvan dat variabele_id 7 and waarde_nl = 3 - 9 kw hier niet in terug komen.

adrianhates

Legacy Member
ik kan uw zinnen niet volgen jom , brengt is wa structuur in uw uitleg plz.

geoffe

Legacy Member
Beste,

Ik heb hier een linkje gelegd naar de afbeelding van mijn query . Nu model_id 4 - 5 - 6 is allemaal goed, omdat daar dus 3 - 9kw en ook gietijzer is gevonden. Maar hij geeft ook alle andere modellen waarvan er ofwel gietijzer, ofwel 3 - 9 kw in voorkomt. Maar dit zou samen moeten vallen.

kimdenkt

Legacy Member
Zo'n SQL query kijkt voor elke rij in je tabel of die voldoet aan de query.
Maar dat zal in jouw geval nooit voorkomen, omdat jouw data verspreid zit over meerdere rijen. Daarom moet je expliciet naar verschillende rijen gaan kijken door gebruik te maken van joins of subqueries. En zo het model_id selecteren waarvoor er voor elk van je verschillende criteria minstens 1 rij bestaat die er aan voldoet.
Bvb :
Code:
SELECT model_id 
FROM 'gegevens_model' outer
WHERE
EXISTS (
	SELECT * FROM 'gegevens_model' inner
	WHERE inner.model_id = outer.model_id AND 
	variabele_id=7 AND 'waarde_nl' LIKE '%3 - 9 KW%'
)
AND
EXISTS (
	SELECT * FROM 'gegevens_model' inner
	WHERE inner.model_id = outer.model_id AND 
	variabele_id=6 AND 'waarde_nl' LIKE '%gietijzer%'
);
(niet getest :))
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan