Māris Kiseļovs'answer couvre le sol ici. Cependant, je veux juste ajouter ce qui suit afin d'éviter toute confusion:
En générale, essayer de faire autant de travail dans la DB/requête possible. Par exemple, ne récupérez pas beaucoup de données uniquement pour effectuer des calculs et des transformations en PHP (ou dans tout autre langage). Toujours chercher à ne demander que ce dont vous avez besoin de la base de données, minimisant ainsi l'échange de données.
Dans ce cas précis vous serez mieux lotis avec l'approche COUNT(*)
et mysql_result()
; effectuer les calculs dans la couche DB, en ne demandant que les données nécessaires (le nombre d'enregistrements).
Cependant, vous listait les dossiers aussi (c.-à-présentant le nombre et itérer sur l'ensemble des dossiers), vous devez simplement faire une SELECT ... FROM ...
normale pour récupérer les enregistrements (afin de générer la liste) et faites mysql_num_rows()
sur cet ensemble de résultats (afin d'obtenir le compte). Dans ce cas, il n'y aura pas de gain dans une requête distincte SELECT COUNT(*) ...
puisque vous avez besoin de toute l'ensemble des résultats de la base de données.
Très bien. Je suis curieux cependant. Combien plus rapide est la méthode suggérée que mysql_num_rows? – Lance
@Lance Vous me dites. Cela dépend vraiment de la taille de la table, de la complexité de la requête et de la pertinence/existence des index. Vous devriez essayer et le temps ... avec des données réalistes. – jensgram