"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment maintenir un ordre aléatoire dans la pagination MySQL sans doublons ni résultats de première page fixes ?

Comment maintenir un ordre aléatoire dans la pagination MySQL sans doublons ni résultats de première page fixes ?

Publié le 2024-11-07
Parcourir:821

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

Pagination PHP MySQL avec ordre aléatoire

Le maintien de l'ordre aléatoire dans la pagination MySQL peut poser des défis lorsque l'on cherche à éviter les résultats en double et à garantir des ensembles variables sur la première page. Voici des solutions à ces problèmes :

1. Prévention des résultats en double

Pour exclure les résultats précédemment affichés sur les pages suivantes, augmentez votre requête SQL avec un critère d'exclusion basé sur les lignes précédemment récupérées. Utilisez un tableau PHP pour stocker le contenu récupéré et incorporez des conditions dans la requête d'exclusion :

$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";

2. Résultats variables sur la première page

Oui, la pagination peut être utilisée avec un ordre aléatoire en introduisant une valeur de départ dans la fonction RAND(). En faisant varier la valeur de départ (par exemple, en fonction de l'heure ou de l'adresse IP de l'utilisateur), vous pouvez obtenir des ensembles de résultats différents à chaque fois.

3. Utilisation de RAND(SEED)

Spécifiez une valeur de départ à l'aide de RAND(SEED) pour influencer l'ordre aléatoire. En définissant un entier constant comme graine, vous pouvez contrôler la séquence de résultats :

$seed = 521; // Example seed value

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729727088. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3