Compter des entrées dans une table mysql

Compter des entrées dans une table mysql - PHP - Programmation

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  :hello: !
 
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 ;)
Reply

Marsh Posté le 03-12-2005 à 13:57:29   

Reply

Marsh Posté le 03-12-2005 à 14:31:57    

Personne ne peux m'aider?


---------------
Ceci n'est pas une signature ;)
Reply

Marsh Posté le 03-12-2005 à 15:16:14    

Reply

Marsh 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 :
  1. $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM messagerie WHERE (destinataire = '$nom') OR (destinataire = '$nom1')" );
  2. $donnees = mysql_fetch_array($retour);
  3. echo $donnees['nbre_entrees'];


 
Ce n'est peut-être pas le mieux, mais au moins, ça a le mérite de marcher!

Message cité 1 fois
Message édité par jo la poisse le 03-12-2005 à 16:03:21

---------------
Ceci n'est pas une signature ;)
Reply

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.

Reply

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.
 
Si certains veulent faire la même chose un jour, voici comment j'ai fait :

Code :
  1. $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM messagerie WHERE (destinataire = '$nom') OR (destinataire = '$nom1')" );
  2. $donnees = mysql_fetch_array($retour);
  3. echo $donnees['nbre_entrees'];


 
Ce n'est peut-être pas le mieux, mais au moins, ça a le mérite de marcher!


 
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 :)

Reply

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.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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() ;)
 
Quel est le mieux??? Un utilise que le SGBD l'autre le serveur http aussi :)

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 :)

Reply

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.
Il est beaucoup plus performant de ne transférer que le résultat du comptage :)


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  :pt1cable:

Reply

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 ;)

Reply

Marsh Posté le 05-12-2005 à 01:42:07   

Reply

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...

Reply

Marsh Posté le 05-12-2005 à 10:49:23    

leflos5 a écrit :

Vers php tu veux dire :)
Ouais dans ce cas là ok, mais ça cache quelque part un problème de conception... donc...

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 [:proy]

Message cité 1 fois
Message édité par mrbebert le 05-12-2005 à 10:50:25
Reply

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() ;)
 
Quel est le mieux??? Un utilise que le SGBD l'autre le serveur http aussi :)


 
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.


---------------
MZP est de retour
Reply

Marsh Posté le 09-12-2005 à 21:44:30    

mrbebert a écrit :

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 [:proy]


 
Et je voulais justement compter le nombre de lignes uniquement.

Reply

Marsh Posté le 28-08-2014 à 18:50:09    

ca marche rien à dire

Reply

Marsh Posté le 29-08-2014 à 09:40:32    

Joli déterrage de 2005 :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 05-02-2015 à 14:51:29    

SELECT COUNT(*) from personne where prenom Like "%gégé%"


---------------
Top 3 des livres gratuits au monde Cliquez ici
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed