Slimer Posté 26 Juillet 2007 Posté 26 Juillet 2007 Bonsoir à tous Voilà je souhaite afficher un COUNT via ma requete $compteur= mysql_query ('SELECT COUNT (login) FROM utilisateur'); je voudrais connaitre la syntaxe pour afficher le nombre de login dans ma base
TheRec Posté 26 Juillet 2007 Posté 26 Juillet 2007 Bonjour, mysql_query te renvoie un ressource (lorsqu'il s'agit d'une requête SELECT) que tu peux exploiter afin d'en extraire les résultats de ta requête avec des fonctions comme mysql_result, mysql_fetch_array, mysql_ fetch_ field, etc. Dans ton cas tu n'a pas besoin d'initialiser un tableau ou de rechercher un champ bien précis vu qu'il n'y a qu'un champ. Donc tu peux le faire avec mysql_result : echo mysql_result($compteur,0); Le "0" correspond à la position de la colonne, la première étant 0 (et non 1).
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 Bonjour, Tu peux utiliser un 'as' : SELECT COUNT (login) as nbr_login FROM utilisateur Et tu peux ainsi le récupérer comme un champ 'normal' Portekoi
Slimer Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 TheRec ta solution me mettais une erreur avec le mysql_result Portekoi je n'ai pas tester te réponse mais merci de ton aide voici ma solution trouvé ce matin : $compteur= mysql_query ("SELECT * FROM utilisateur");$nb_compteur= mysql_num_rows($compteur);echo $nb_compteur; Finalement je suis aller au plus simple ma requete selectionne tout puis le mysql_num_rows m'affiche le nombre de résultat que contient ma requete merci à tous
petit-ourson Posté 26 Juillet 2007 Posté 26 Juillet 2007 $compteur= mysql_query ("SELECT * FROM utilisateur");$nb_compteur= mysql_num_rows($compteur);echo $nb_compteur; Cela me semble de loin la plus mauvaise solution. Si demain ta table fait des milliers de lignes, c'est beaucoup de temps perdu pour rien.
TheRec Posté 26 Juillet 2007 Posté 26 Juillet 2007 TheRec ta solution me mettais une erreur avec le mysql_result L'idéal serait de nous donner l'erreur en question Ainsi que ce qu'affiche la ligne, si tu l'exécutes juste après avoir exécuté ta requête grâce à la fonction mysql_query : echo mysql_errno().": ".mysql_error();
Slimer Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 $compteur= mysql_query ("SELECT COUNT (login) FROM utilisateur");$nb_compteur= mysql_result($compteur,0);echo $nb_compteur." inscripts";Warning: mysql_result(): supplied argument is not a valid MySQL result resource in ... Voilà l'erreur en question (effectivement avec ma solution à force la requete va mettre de plus en plus de temps)
TheRec Posté 26 Juillet 2007 Posté 26 Juillet 2007 D'accord... et la deuxième partie dont je te parle dans mon précédent message ? mysql_error te donnera l'erreur générée par MySQL, car en fait l'erreur que tu viens de nous donner est là parce que la requête SQL est erronée.
Slimer Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in ... on line 81064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(login) FROM utilisateur' at line 1 donc la d'après toi ma requête serait fausse?
Slimer Posté 27 Juillet 2007 Auteur Posté 27 Juillet 2007 (modifié) La requête en elle même marche sous phpmyadmin elle me renvoie 3 Le problème étant que je dois surement oublier un ' ou un " mais je ne vois pas ou? Modifié 27 Juillet 2007 par Slimer
TheRec Posté 27 Juillet 2007 Posté 27 Juillet 2007 Il y a peu de risque que ta fonction telle qu'elle est écrite ici fonctionne : To use the name as a function call in an expression, there must be no whitespace between the name and the following ‘(’ parenthesis character.Source: MySQL 5.0 Reference Manual - 9.2.3 Function Name Parsing and Resolution Bref, il ne faut pas mettre d'espace entre le nom de ta fonction (COUNT) et la parenthèse (à moins d'avoir activé l'option IGNORE_SPACE sur ton serveur MySQL, mais je t'avoue que j'ai découvert cette fonction en cherchant une solution à ton problème, donc je ne connais pas toutes les implications qu'a cette option).
Slimer Posté 27 Juillet 2007 Auteur Posté 27 Juillet 2007 Probléme résolu merci TheRec Php est très succeptible un petit espace et le voici tout désappointé $compteur=mysql_query("SELECT COUNT(login) FROM utilisateur");$nb_compteur=mysql_result($compteur,0);echo $nb_compteur; résultat affiché : 2 Merci à tous pour m'avoir aidé et solutionné ce problème
TheRec Posté 27 Juillet 2007 Posté 27 Juillet 2007 De rien En l'occurrence ce n'est pas PHP, c'est MySQL qui retourne cette erreur, d'où l'usage de la fonction mysql_error pour en connaitre la teneur. PHP te donnait une erreur t'indiquant que la ressource retournée par mysql_query n'était pas exploitable avec mysql_result (ou d'autres fonction du même genre). P.S. : Au fait, sur le Hub, pour les BB Codes "courts" (moins de 10-15 lignes lignes) tu peux utiliser la balise CODE, pour les codes plus long la balise tu peux utiliser CODEBOX, j'ai édité des message dans ce sens P.S.S. : Idem pour petit-ourson concernant les BB Codes
petit-ourson Posté 27 Juillet 2007 Posté 27 Juillet 2007 P.S.S. : Idem pour petit-ourson concernant les BB Codes Ah oui, ce n'est pas faute d'avoir cherché à comprendre pourquoi mon bbcode be marchait pas... mais j'avais abandonné. ;o)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant