Maison > base de données > tutoriel mysql > 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
Libérer: 2024-10-24 07:57:02
original
588 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal