Ik ben bezig met een php-applicatie waarmee gezocht wordt in een mysql database. De tabel waarin gezocht wordt bevat twee Fulltext-indices waarin gezocht kan worden. De resultaten moeten vervolgens met een instelbaar aantal per pagina worden weergegeven.
Dit doe ik met onderstaande query (voor de eerste pagina):
En voor de 2e pagina (uitgaande van 10 results per pagina):
Nu werkt dit opzich prima, alleen gaat Mysql voor die 2e pagina zoeken tot hij 20 results heeft, dan gooit hij de eerste 10 weg en de volgende 10 geeft hij terug. Dat is niet echt handig als men straks doorklikt naar pagina nr 80.
Nu zoek ik dus een manier om Mysql bij het doorklikken naar een volgende pagina een soort 'offset' mee te geven vanwaar hij moet beginnen met zoeken. Volgens mij moet dit kunnen aangezien het niet mogelijk hoeft te zijn om van pagina 1 direct door te klikken naar een willekeurige pagina, enkel naar de volgende.
Iemand hier ideëen over?
Dit doe ik met onderstaande query (voor de eerste pagina):
SQL:
1
2
3
4
| SELECT * FROM table WHERE MATCH(column1) AGAINST('+searchterm1* +searchterm2*' IN BOOLEAN MODE) AND MATCH(column2) AGAINST('+searchterm3* +searchterm4*' IN BOOLEAN MODE) LIMIT 0,10; |
En voor de 2e pagina (uitgaande van 10 results per pagina):
SQL:
1
2
3
4
| SELECT * FROM table WHERE MATCH(column1) AGAINST('+searchterm1* +searchterm2*' IN BOOLEAN MODE) AND MATCH(column2) AGAINST('+searchterm3* +searchterm4*' IN BOOLEAN MODE) LIMIT 10,10; |
Nu werkt dit opzich prima, alleen gaat Mysql voor die 2e pagina zoeken tot hij 20 results heeft, dan gooit hij de eerste 10 weg en de volgende 10 geeft hij terug. Dat is niet echt handig als men straks doorklikt naar pagina nr 80.
Nu zoek ik dus een manier om Mysql bij het doorklikken naar een volgende pagina een soort 'offset' mee te geven vanwaar hij moet beginnen met zoeken. Volgens mij moet dit kunnen aangezien het niet mogelijk hoeft te zijn om van pagina 1 direct door te klikken naar een willekeurige pagina, enkel naar de volgende.
Iemand hier ideëen over?