Compter des entrées dans une table mysql - PHP - Programmation
Marsh Posté le 03-12-2005 à 14:31:57
Personne ne peux m'aider?
Marsh Posté le 03-12-2005 à 15:16:14
ReplyMarsh Posté le 03-12-2005 à 16:02:46
Je vous remercie. En fouillant un peu, j'ai trouvé une manière d'arriver à mes fins.
Si certains veulent faire la même chose un jour, voici comment j'ai fait :
Code :
|
Ce n'est peut-être pas le mieux, mais au moins, ça a le mérite de marcher!
Marsh Posté le 03-12-2005 à 21:53:40
Si, c'est une bonne solution
Le serveur de bases de données gère tout lui même et il n'y a qu'un volume minimum de données qui est transmis.
Marsh Posté le 04-12-2005 à 12:39:18
jo la poisse a écrit : Je vous remercie. En fouillant un peu, j'ai trouvé une manière d'arriver à mes fins.
|
Sinon t'as la solution de HellR, tu fais ton select tout court et tu récupère le nombre de tuples en résultats avec mysql_num_rows()
Quel est le mieux??? Un utilise que le SGBD l'autre le serveur http aussi
Marsh Posté le 04-12-2005 à 14:54:20
select count(*) est mieux si on a uniquement besoin du nombre de tuples.
Mais si on veut aussi les tuples en eux-même, alors mysql_num_rows est parfaitement adaptée.
Marsh Posté le 04-12-2005 à 18:14:47
leflos5 a écrit : Sinon t'as la solution de HellR, tu fais ton select tout court et tu récupère le nombre de tuples en résultats avec mysql_num_rows() |
Là, tu demandes au serveur MySQL de renvoyer tous les enregistrements vers PHP. Donc, il va y avoir un transfert de données (ca peut être volumineux) vers PHP qui va devoir les stocker avant de les compter.
Il est beaucoup plus performant de ne transférer que le résultat du comptage
Marsh Posté le 05-12-2005 à 01:28:01
mrbebert a écrit : Là, tu demandes au serveur MySQL de renvoyer tous les enregistrements vers PHP. Donc, il va y avoir un transfert de données (ca peut être volumineux) vers PHP qui va devoir les stocker avant de les compter. |
Sauf que si tu récupères des données dont tu as besoin, de toutes manière faut bien que ça passe du sgbd à php Qu'il récupère le nombre de tuples retournés et que tu t'en serves ou non ça change rien
Maintenant si t'as juste besoin du nombre et à aucun moment des données pourquoi pas un count ok Mais sinon pourquoi s'emmerder alors que y'a un truc qui est là pour ça et séparer un peu les données du traitement Et dans ce cas je vois pas la surcharge de données Mysql retourne le nombre de tuples lus ou impactés point
Marsh Posté le 05-12-2005 à 01:42:07
Là, on parle du cas ou on a seulement besoin du nombre de lignes (voir réponse de sielfried). Et dans ce cas, la différence peut être très importante puisqu'on évite un transfert de données de la base vers MySQL
Marsh Posté le 05-12-2005 à 02:03:45
mrbebert a écrit : Là, on parle du cas ou on a seulement besoin du nombre de lignes (voir réponse de sielfried). Et dans ce cas, la différence peut être très importante puisqu'on évite un transfert de données de la base vers MySQL |
Vers php tu veux dire
Ouais dans ce cas là ok, mais ça cache quelque part un problème de conception... donc...
Marsh Posté le 05-12-2005 à 10:49:23
leflos5 a écrit : Vers php tu veux dire |
Oui, vers PHP.
Mais il n'y a pas forcément de problème de conception, tu peux très bien avoir besoin de savoir un nombre de lignes sans devoir récupérer ces lignes. Par contre, transférer une quantité importante de données inutiles, ca, c'est une erreur
Marsh Posté le 05-12-2005 à 11:23:00
leflos5 a écrit : Sinon t'as la solution de HellR, tu fais ton select tout court et tu récupère le nombre de tuples en résultats avec mysql_num_rows() |
Et si tu as beaucoup de volume, ca ne sert à rien. Avant que PHP puisse compter le nombre de resultat, il doit les recuperer. Ce qui genere du volume pour rien. le count() est fait pour ca.
D'ailleurs, le SELECT count(1) FROM matable est recommandé plus que *. * indique au moteur de prendre tous les champs, alors qu'il ne t'interesse pas. Tu veux juste les compter. Autant faire en sorte qu'il ne recupere aucun champs.
Marsh Posté le 09-12-2005 à 21:44:30
mrbebert a écrit : Oui, vers PHP. |
Et je voulais justement compter le nombre de lignes uniquement.
Marsh Posté le 29-08-2014 à 09:40:32
Joli déterrage de 2005
Marsh Posté le 05-02-2015 à 14:51:29
SELECT COUNT(*) from personne where prenom Like "%gégé%"
Marsh Posté le 03-12-2005 à 13:57:29
Bonjour,
Je voudrais compter le nombre d'entrées qui correspondent à un critère précis dans une table (ex : compter les entrées où la colone prénom contient gégé).
Je ne vois absolument pas comment y arriver , donc si quelqu'un à une idée, je suis preneur !
Merci d'avance à tous ceux qui me répondront.
Message édité par jo la poisse le 03-12-2005 à 13:59:07
---------------
Ceci n'est pas une signature ;)