Mysql_num_rows ou select count

Résolu
elidris Messages postés 125 Date d'inscription lundi 15 août 2005 Statut Membre Dernière intervention 9 octobre 2007 - 2 avril 2006 à 03:17
elidris Messages postés 125 Date d'inscription lundi 15 août 2005 Statut Membre Dernière intervention 9 octobre 2007 - 3 avril 2006 à 23:56
bonjour,

voilà je m'apercois que des 2 commandes PHP fournissent le meme resultat, j'aimerais savoir laquelle est la plus efficace (rapidité et nb de requete):


premiere:
$query_7 = "select count(id) as nb_argent from Proverbe where categorie='argent'";
$result_7 = mysql_query($query_7) or die("La requête "$query_7" n'a pas pu s'exécuter !");
$val_7 = mysql_fetch_array($result_7);
$argent = $val_7["nb_argent"];
echo $argent;

deuxieme :
$query_7 = "select id from Proverbe where categorie='argent'";
$result_7 = mysql_query($query_7) or die("La requête "$query_7" n'a pas pu s'exécuter !");
$c_argent = mysql_num_rows($result_7);
echo $c_argent;

Le but etant simplement de compter le nombre de ligne correspondant à la categorie argent et de l'afficher
où peut-être existe-t'il plus simple ?

si quelqu'un peux m'aider...merci

3 réponses

cs_lugdanum Messages postés 58 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 12 décembre 2006
2 avril 2006 à 14:17
Moi je dirais la première, ta requête est plus précise, donc certainement plus rapide et plus précise.
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
2 avril 2006 à 17:11
Salut,

la première étant donné qu'elle ne renvoie qu'une valeur, au contraire de la deuxième qui va renvoyer de MySQL à PHP tous les id en question, mais tu peux faire des benchs via MYSQL et la commande BENCHMARK :-)

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
3
elidris Messages postés 125 Date d'inscription lundi 15 août 2005 Statut Membre Dernière intervention 9 octobre 2007
3 avril 2006 à 23:56
Merci pour vos réponses, en effet le count(*) ne renvoi qu'une valeur, je ne connais pas la commande BENCHMARK, mais j'ai fait un EXPLAIN et il m'a sortie le nombre de ligne lu...


merci

"La vie, c'est pour la vie..."
http://proverbe.intoxmatique.com
0
Rejoignez-nous