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 :
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!