Paginação PHP MySQL com ordem aleatória
Manter a ordem aleatória na paginação MySQL pode representar desafios ao tentar evitar resultados duplicados e garantir conjuntos variados em a primeira página. Aqui estão as soluções para essas preocupações:
1. Evitando resultados duplicados
Para excluir resultados vistos anteriormente em páginas subsequentes, aumente sua consulta SQL com um critério de exclusão baseado em linhas buscadas anteriormente. Utilize um array PHP para armazenar o conteúdo buscado e incorpore condições na consulta para exclusão:
$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. Resultados variados na primeira página
Sim, a paginação pode ser usada com ordem aleatória, introduzindo um valor inicial na função RAND(). Variando a semente (por exemplo, com base na hora ou no endereço IP do usuário), você pode obter diferentes conjuntos de resultados a cada vez.
3. Usando RAND(SEED)
Especifique um valor inicial usando RAND(SEED) para influenciar a ordem aleatória. Ao definir um número inteiro constante como a semente, você pode controlar a sequência de resultados:
$seed = 521; // Example seed value
$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3