compter

Répondre
vengeur002
le 11/03/2005 à 08:50
vengeur002
salut

moi j ai un petit soucis qui je suis certain est super simple mais je sais po donc...

j ai checher dans phpfacile une commande pour retourner le nombre d entree dans une table
par exemple le nombre de membre mais sans succes
j ai truver select count(*) mais ca doid pas etre ca (ca ca sert a verifier si une entree existe deja ou pas dans une table non?)
bref est ce que quelqu un pourrai me donner la commande qui retourne le nombre d entree dans une table

un grand merci par avance
zebden
le 11/03/2005 à 10:06
zebden
mysql_num_rows() ,
effectivement t'as mal cherché :/
zebdinou pour les intimes / Blog : http://www.zebden.fr
vengeur002
le 11/03/2005 à 10:30
vengeur002
arf j ai mis dans la recherche les mot suivant

compter
afficher le nombre
retourner le nombre
d autre encore mais j ai rien trouve!!!!

en tout cas je te remerci beaucoup
Rex
le 11/03/2005 à 13:44
Rex
HOULAAAAA .... mysql_num_rows, JAMAIS DE LA VIE !!!

C'est bien count(*) qu'il faut utiliser si tu veux connaître le nombre d'entrées dans ta table.

mysql_num_rows te donne le nombre d'éléments retournés par la requête. Si tu as 1 milion d'enregistrements, tu ne vas pas plomber la mémore du serveur pour juste connaître le nombre. D'ailleurs certains hébergement (comme free) limite la quantité de données retournées afin de ne par surcharger le serveur avec une application mal foutu. Ainsi, si tu as 1 milion d'enregistrements, un "SELECT ... FROM table" et un mysql_num_rows te donnera une valeur inférieur à 1000.

Pour connaitre le bon chiffre :

<?php
$sql = 'SELECT count(*) as nombre FROM table';
$result_set = mysql_query( $sql );
$result = mysql_fetch_assoc( $result_set );
echo 'il y a ', $result['nombre'], ' enregistrements dans la table';
?>
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 11/03/2005 à 13:58
Rex
Bon, Zebden aime bien mes "images", en voici une pour ce problème.

On veut connaître le nombre d'articles qu'il y a dans un magazin, on remplis son caddie avec TOUS les articles (balèze le caddie), on passe en caisse, on regarde sur le ticket combien il y a d'articles et on se barre en laissant tout en caisse.

Pourquoi ne pas demander à la personne qui gère le stock, elle sait combien il y en as !
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
bibi
le 11/03/2005 à 14:06
bibi
ce qui apporte la facilité de mysql_num_rows() c'est que t'as pas besoin de faire de mysql_fetch_array et que par exemple si tu fais :

<?php

$req = mysql_query('SELECT COUNT(NumNews) AS nbnews,TitreNews,NomNews,CorpsNews FROM News ORDER BY DateMessage ASC');
?>


et que tu veux afficher le nombre de news que tu as avant d'afficher les news, tu dois faire qqchoz du style:

<?

$data = mysql_fetch_array($req);

echo 'Il y a ',$data['nbnews'],' news';
/* Ici affichage de la premiere news selon un design */

while($data=mysql_fetch_array($req))
{

/* affichage de toutes les news a partir de la 2eme */
}
?>


si on a un code lourd pour la news, c'est relativement laid de recopier 2 fois. Bien sur je te vois venir avec : on a juste a faire une classe news mais tout le monde ne sait pas obligatoirement faire de POO mais si ca n'a rien d'exceptionnel la preuve, j'ai bien réussi smiley

Enfin je trouve qu'il y a une certaine facilité dans le mysql_num_rows() . Par contre je suis d'accord avec toi qu'il faut prendre un COUNT(*) si on veut juste faire un affichage de ce nombre . Ou alors pour le probleme que j'ai montré, on peut aussi faire 2 requetes mais bon ca aussi ca prendre de la ressource meme si une requete de count(*) c pas exceptionnel . Et enfin : si la personne n'est pas championne du monde de sql, elle peut ne pas savoir que COUNT existe :)

voili voilou :)
commit suicide
Rex
le 11/03/2005 à 14:14
Rex
Attention, je ne dis pas que mysql_num_rows ne sert à rien !

Mais aux vues que la question, il me semblait plus qu'important de rectifier cette dangeureuse erreur.

En ce qui concerne l'utilisation de mysql_num_rows, perso, je ne l'utilise jamais.

Même dans le cas que tu cites, puisque je fais une séparation entre affichage et traitement et donc que j'ai déjà toutes mes valeurs dans un tableau ou un objet. Donc j'utilise la fonction "count" de php :)

PS : Hannnnn, tu as utilisé une balise courte !!!!
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours