2010-05-13 4 views
-1

Juste, un peu un gratte-tête, bien que j'ai le sentiment qu'il y a une réponse évidente et je ne vois tout simplement pas le bois pour les arbres.Comment coder un 'Suivant dans les résultats' dans les résultats de recherche en PHP

Baiscally, en utilisant Solr comme un moteur de recherche pour mon site, ramenant 15 résultats par page. Lorsque vous cliquez sur un résultat, vous obtenez une page de détail qui contient un lien "Suivant dans les résultats", qui vous redirige évidemment vers le résultat suivant.

Quelle est la meilleure façon de procéder? J'ai trouvé quelques solutions, mais elles sont trop pratiques ou ne fonctionnent tout simplement pas.

Je pourrais stocker tous les identifiants dans un tableau de session, puis saisir celui après le courant et le mettre dans le lien. Mais avec éventuellement des centaines/milliers de résultats, la mémoire dont ce tableau aurait besoin, et le coup de performance lié à son traitement, n'est pas pratique.

Je pourrais prendre la même approche et la mettre dans la base de données, mais je devrai toujours faire face à un tableau potentiellement énorme quand je les attrape hors de la base de données.

Ou; Je pourrais refaire la recherche, ne retourner que les identifiants, et attraper celui qui est en train de regarder. Je pense que cela pourrait être la meilleure option? Bien que cela semble un peu désordonné, à savoir à cause de quand je dois sélectionner l'ID qui est sur une «page» différente (c'est-à-dire le 16ème, 31ème résultat etc). À moins que je ne passe par où il était dans les résultats, et sélectionnez à partir de là, mais cela ne semble toujours pas la bonne façon de le faire.

Je suis vraiment désolé si cela est juste non-sens complet, toute aide est massivement apprécié comme toujours,

Vive les gars!

Répondre

0

Eh bien votre solution de session n'est pas si mauvaise. Comme ces milliers de résultats ne sont que quelques kilo-octets en mémoire.

Bien que vous puissiez le faire d'une autre manière. vous pouvez juste trouver un identifiant de l'enregistrement suivant avec une requête simple. c'est plus simple qu'il n'y parait: je suis sûr que vous pouvez trouver un jeton après le premier si vous les commandez en nombres. Pour les enregistrements de base de données font juste la même chose;)

Questions connexes