Ik heb het volgende probleem:
m'n database ziet er als volgt uit:
foto id, url, datum, city_id, headline_id, fotograaf_id
keywords id, keyword
fotokey id, keyword_id, foto_id
als ik op een keyword zoek dan gebruik ik de volgende query:
Echter werkt dit alleen met 1 keyword. Zodra er een tweede aan te pas komt werkt het al niet meer.
Dus dacht ik de zoekopdracht te splitsen (explode met spatie) om vervolgens de query te herhalen en het resultaat in een array te zetten. Het komt dus in een 2d array.
Deze arrays moeten dan vergeleken worden... in php komt daar voor array_intersect van pas.
Echter weet ik niet hoeveel keyword bij de zoekopdracht komen. Dus kan het zijn dat er niets vergeleken hoeft te worden (1 keyword) maar het kan ook dat er 5 arrays met elkaar vergeleken moeten worden.
Hoe moet ik dit dan oplossen??? is er een andere query die dit probleem oplost? of moet ik echt arrays gaan vergelijken???
m'n database ziet er als volgt uit:
foto id, url, datum, city_id, headline_id, fotograaf_id
keywords id, keyword
fotokey id, keyword_id, foto_id
als ik op een keyword zoek dan gebruik ik de volgende query:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| SELECT
url
FROM
keyfoto as A,
foto as B,
keywords as C
WHERE
A.key_id = C.id
AND
B.id = A.foto_id
AND
C.keyword like '%$key%'"; |
Echter werkt dit alleen met 1 keyword. Zodra er een tweede aan te pas komt werkt het al niet meer.
Dus dacht ik de zoekopdracht te splitsen (explode met spatie) om vervolgens de query te herhalen en het resultaat in een array te zetten. Het komt dus in een 2d array.
Deze arrays moeten dan vergeleken worden... in php komt daar voor array_intersect van pas.
Echter weet ik niet hoeveel keyword bij de zoekopdracht komen. Dus kan het zijn dat er niets vergeleken hoeft te worden (1 keyword) maar het kan ook dat er 5 arrays met elkaar vergeleken moeten worden.
Hoe moet ik dit dan oplossen??? is er een andere query die dit probleem oplost? of moet ik echt arrays gaan vergelijken???