Maison  >  Article  >  base de données  >  Comment implémenter la pagination avec un ordre aléatoire dans PHP MySQL ?

Comment implémenter la pagination avec un ordre aléatoire dans PHP MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 07:57:02500parcourir

How to Implement Pagination with Random Ordering in PHP MySQL?

Pagination PHP MySQL avec ordre aléatoire

Comme mentionné, un site Web est confronté à un problème lors de l'ordre des résultats de recherche sur sa page de contenu à l'aide d'une pagination. système. La requête SQL utilisée est la suivante :

<code class="sql">SELECT * FROM table ORDER BY RAND() LIMIT 0,10;</code>

Ce problème se produit dans trois scénarios :

  1. Exclusion des résultats précédemment vus : lorsqu'un utilisateur navigue à la page suivante, les résultats précédemment affichés doivent être exclus des requêtes ultérieures tout en conservant l'ordre aléatoire.
  2. Frais résultats sur la page 1 : l'utilisateur rencontre systématiquement un ordre aléatoire en revenant à la première page. Ce comportement soulève la question de savoir si la pagination peut être utilisée efficacement dans ce scénario.
  3. Implémentation pratique de Seed : Explorer les moyens d'implémenter la fonction seed dans MySQL pour obtenir l'ordre aléatoire souhaité.

Solution :

La fonction MySQL RAND(SEED) résout ce problème. Comme indiqué dans la documentation, "Si un argument entier constant N est spécifié, il est utilisé comme valeur de départ." (http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand).

L'application de ceci à l'exemple de requête aboutit à un scénario dans lequel l'ordre reste aléatoire tandis que être cohérent pour une seed donnée :

<code class="sql">SELECT * FROM your_table ORDER BY RAND(351);</code>

La seed peut être modifiée à chaque fois que l'utilisateur accède à la première page de résultats et stockée dans sa session. Cela garantit un ordre aléatoire différent à chaque fois que la première page est visitée sans affecter l'ordre aléatoire des pages suivantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn