Affichage select count()

Affichage select count() - PHP - Programmation

Marsh Posté le 14-03-2006 à 19:09:13    

Hello à tous !
J'aimerais compter le nombre d'enregistrements dans ma table "dogs".
Parmi les deux solutions ci-dessous, laquelle est la plus économique en terme de ressources du serveur ? Y'en a-t-il une troisième de meilleure ? Dans le cas où c'est la première solution, comment afficher la valeur trouvée ?
1- $r1=mysql_query("SELECT Count(*) AS Total FROM dogs" );
2- $r1=mysql_query("SELECT pseudo FROM dogs ORDER BY pseudo ASC" );
$nb=mysql_num_rows($r1); echo "$nb";
Merci à vous tous pour la réponse à ces trois questions et très bonne semaine ! ;-)

Reply

Marsh Posté le 14-03-2006 à 19:09:13   

Reply

Marsh Posté le 14-03-2006 à 19:17:00    

Assurément c'est la première.
 
Voici une méthode (il doit y avoir + court) qui devrait fonctionner:
$jeuenr = mysql_fetch_array($r1)or die (mysql_error());
$nb = $jeuenr['Total']

Reply

Marsh Posté le 14-03-2006 à 19:20:08    

Je vais essayer ça alors ;)
Et quelqu'un aurait-il donc plus court si possible ? ^^

Reply

Marsh Posté le 14-03-2006 à 20:02:48    

Aucune des deux :D
 

Code :
  1. select count(1) as total from dogs


 
ou à la limite un count(un_champs) mais pas un count(*) :)
 
//edit : juste pour préciser, sur une table au format isam/myisam, un simple select count(*) from... ira aussi vite que les deux autres, c'est plutôt lors de la présence d'un where ou lorsqu'on retourne d'autres champs qu'on évitera le count(*). Ainsi qu'en InnoDB d'ailleurs.


Message édité par naceroth le 14-03-2006 à 20:12:06
Reply

Marsh Posté le 14-03-2006 à 22:32:58    

Si tu n'as qu'un champ :
select count(*) as total from dogs = select count(1) as total from dogs
 
donc j'avais un peu raison d'autant que dans la premiere solution du fait un order by pour rien :p
 
Fred

Reply

Marsh Posté le 14-03-2006 à 22:41:12    

Merci à vous deux ;)

Reply

Marsh Posté le 14-03-2006 à 23:47:38    

mysql_affected_rows() ou mysql_num_rows()


Message édité par the_bigboo le 14-03-2006 à 23:47:51
Reply

Sujets relatifs:

Leave a Replay

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