Eens kijken of ik dit duidelijk uit kan leggen.
Ik heb een zoekfunctie nodig die lokaties op 1 of meerdere tags kan soorteren. Voor deze kwestie zijn er 3 relevante tabellen: location, locationtag en tag.
Location bevat de lokatiegegevens en een ID
Locationtag is een koppeltabel die location.id en tag.id koppelt met de toepasselijke waardes locationtag.locationid en locationtag.tagid
Tag is een tabel waarin elke entry bestaat uit een tag.tag en een tag.id
Nu krijg ik het met mijn beperkte sql-kennis wel voor elkaar om lokaties te vinden die op 1 tag matchen:
Maar zodra ik op meerdere tags wil selecteren gaat het me toch echt te ver. Nu heeft een ex-huisgenoot met roestige sql-kennis me ook wel proberen te helpen maar die kwam niet verder dan dit als zijn laatste poging:
En daar volg ik dus al niks meer van.
Indien toepasselijk, het geheel draait verder op Apache en MySQL 5.0.24a en moet op 5.0.18 kunnen werken.
Alle hulp is welkom.
Ik heb een zoekfunctie nodig die lokaties op 1 of meerdere tags kan soorteren. Voor deze kwestie zijn er 3 relevante tabellen: location, locationtag en tag.
Location bevat de lokatiegegevens en een ID
Locationtag is een koppeltabel die location.id en tag.id koppelt met de toepasselijke waardes locationtag.locationid en locationtag.tagid
Tag is een tabel waarin elke entry bestaat uit een tag.tag en een tag.id
Nu krijg ik het met mijn beperkte sql-kennis wel voor elkaar om lokaties te vinden die op 1 tag matchen:
PHP:
1
| $query = "SELECT * FROM location, locationtag, tag WHERE tag.tag like '".$tags[0]."' AND location.id=locationtag.locationid and locationtag.tagid=tag.id"; |
Maar zodra ik op meerdere tags wil selecteren gaat het me toch echt te ver. Nu heeft een ex-huisgenoot met roestige sql-kennis me ook wel proberen te helpen maar die kwam niet verder dan dit als zijn laatste poging:
PHP:
1
2
3
4
| $query = "SELECT * FROM tag". "LEFT JOIN (locationtag AS lt) ON (lt.locationid=l.id) ". "R JOIN (tag AS t1, tag AS t2) ON (lt. )"; $query.= " WHERE t1.tag LIKE '".trim($tags[0])."' AND t2.tag LIKE '".ucfirst(trim($tags[1]))."'"; |
En daar volg ik dus al niks meer van.
Indien toepasselijk, het geheel draait verder op Apache en MySQL 5.0.24a en moet op 5.0.18 kunnen werken.
Alle hulp is welkom.