Classificando uma Lista de Comentários Cronologicamente
-
19-08-2019 - |
Pergunta
Eu estou tentando classificar uma lista de críticas de filmes em ordem cronológica. Temos duas opções os usuários podem escolher, cronológica e alfabética. A página padrão é alfabética, mas quando as pessoas clique na opção cronológica, nada acontece.
Aqui está o código que temos agora:
// category 3 is 'reviews', category 12 is 'dvd reviews'
if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
{
$output = AL_HELPER::GetArticles($articleResult);
}
else
{
$output = AL_HELPER::GetArticlesABC($articleResult);
}
O que fiz foi flip-flop os dois ifs. Colocando GetArticles primeira e segunda GetArticlesABC o que significa que ficou assim:
// category 3 is 'reviews', category 12 is 'dvd reviews'
if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
{
$output = AL_HELPER::GetArticlesABC($articleResult);
}
else
{
$output = AL_HELPER::GetArticles($articleResult);
}
É, de fato, classificar os comentários cronologicamente mas tirou todas as opções alfabéticos. Essencialmente, foi uma longa lista de comentários cronológicos. Então, obviamente, isso não é o que queremos.
Alguém sabe como limitar o número de itens que ele lista na página? Ou talvez é necessário aqui uma abordagem completamente diferente, se assim for, alguma sugestão?
Solução
A limitação do número de resultados por página, se estiver usando um banco de dados back-end e SQL é tão simples como usar o operador LIMIT para recuperar somente um determinado número de resultados. Você pode, então, implementar operações seguinte / anteriores, passando uma variável entre as páginas que se relaciona com o conjunto de resultados que você ter puxado.
Por exemplo:
SELECT <Whatever> FROM <review table> LIMIT 0,10
irá recuperar os 10 primeiros resultados.
SELECT <Whatever> FROM <review table> LIMIT 10,20
Será recuperar o próximo 10. Ao substituir os números com variáveis ??que você pode conseguir pagination:
SELECT <Whatever> FROM <review table> LIMIT resultIndex,resultIndex+10