2010-01-06 6 views
1

Dans de nombreux avis, il existe généralement une fonctionnalité à trier par date, serviabilité, etc ... Essentiellement, ceux-ci fonctionnent en interrogeant une nouvelle ligne MySQL droite?Tri par date dans les avis

Par exemple:

$sql = "SELECT * FROM TABLE ORDER BY TimeAdded" 
$sql = "SELECT * FROM TABLE ORDER BY Helpfulness" 

Ou y aurait-il une meilleure façon de le faire?

Deuxièmement, faire des pages pour les commentaires. Est-ce aussi simple que d'utiliser une boucle et une limite dans la requête MySQL pour afficher 10 résultats par page?

Editer: Pour un site de critique énorme, est-ce que MySQL serait idéal pour gérer tout le tri?

Répondre

1

Vous pouvez soit laisser la base de données gérer la commande que vous avez là (recommandé) ou vous pouvez charger tous les résultats et ensuite les trier en utilisant votre code PHP. Alternativement, vous pouvez les mettre tous en HTML et les trier en utilisant JavaScript.

Pagination, vous pouvez utiliser les clauses LIMIT et OFFSET (ou LIMIT 10,10) à la page par un resultset (bien sûr, si les changements de ResultSet, votre pagination peut également changer).

SELECT * FROM posts ORDER BY helpfulness LIMIT 10,10 

OU

SELECT * FROM posts ORDER BY helpfulness LIMIT 10 OFFSET 10 

Pour combiner le tri et la pagination, je vous recommande vivement le laisser à la base de données à gérer.

1

Vous avez raison sur les deux points, Doug. Pour un site de révision énorme, vous voulez toujours que MySQL trient les résultats, vous voulez juste utiliser les optimisations côté serveur (un bon my.cnf, la mise en cache côté serveur, etc.) et la mise en cache du code. C'est une toute autre boule de cire, mais les bases sont fondamentalement les mêmes.