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;";
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