Compter les entrées d'une table

Mammouth du PHP | 965 Messages

14 mai 2006, 13:57

je voudrais compter le nombre d'entrées sur ma base de donnée et j'utilise donc la commande :

Code : Tout sélectionner

SELECT COUNT FROM (*)
Mais il me retourne toujours la même erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\www\profil.php on line 210

Eléphant du PHP | 493 Messages

14 mai 2006, 14:08

L'erreur vient du fait que taz requête n'est pas valid.
Une requete SQL SELECT est de la forme :

Code : Tout sélectionner

SELECT champs FROM table [WHERE conditions [LIMIT enregistrements [etc ]]]
Ainsi si tu veux compter tu dois faire :

Code : Tout sélectionner

SELECT COUNT(*) AS total FROM table
Total va être le nom du champ contenant le nombre d'enregistrements.

EDIT: meilleure explication

Mammouth du PHP | 965 Messages

14 mai 2006, 14:12

j'utilise bien la 2eme forme mais il ne me retourne toujousr la même erreur et la synthaxe est tout a fait correct.

Je ne comprends pas pourquoi il me retourne toujours cette erreur a cette ligne ...

Eléphanteau du PHP | 39 Messages

14 mai 2006, 14:16

SAlut agité, tu peux nous montrer la requête complète ?

Mammouth du PHP | 965 Messages

14 mai 2006, 14:20

Je suis au boulot et j'ai pas le code sous la main :D je vous donne ca quand je rentre chez moi mais c'est de la forme :
$nb = mysql_query("SELECT COUNT (*) As nb FROM `matable` LIKE '".$SESSION['login']."' ");
$var = mysql_fetch_array($nb);

echo $var['nb'];

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 mai 2006, 16:17

affiche la requête générée pour vérifier qu'elle est complète niveau variables.

En passant l'exemple du 1er post n'as rien à voir avec le dernier exemple qui devrait fonctionnner si la variable de session est bien affectée et en ajoutant un pti WHERE :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

14 mai 2006, 20:30

$nb = mysql_query("SELECT COUNT (*) AS nb FROM `mix` WHERE nom LIKE '".$_SESSION['login']."' ");		
 $var=mysql_fetch_array($nb);
et j'ai une erreur en faisant
echo "Musique en ligne (".$nb.")";
Une idée :?:

Mammouth du PHP | 965 Messages

14 mai 2006, 21:47

plutôt :
	echo "Musique en ligne (".$var['nb'].")";
comme echo mais toujours la même erreur

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 mai 2006, 22:49

décompose l'exécution pour pouvoir afficher la reqête:
$sql="SELECT COUNT (*) AS nb FROM `mix` WHERE nom LIKE '".$_SESSION['login']."' ";
echo $sql;

$nb = mysql_query($sql);        
$var=mysql_fetch_array($nb);
vérifie que la variable de session passe bien.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

14 mai 2006, 23:01

la dessus pas de problème la variable de session passe sans problème je l'utilise ailleur sur cette page et il me l'affiche bien la il m'indique qu'a la ligne 213 ca merde :
$var=mysql_fetch_array($nb);

Mammouth du PHP | 19672 Messages

14 mai 2006, 23:02

il m'indique qu'a la ligne 213 ca merde...
Ton serveur MySQL est vraiment vulgaire, tu devrais le mettre à jour, le mien ne m'a jamais envoyé ce genre de message :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 mai 2006, 23:13

Parfois je préfèrerais voir ce genre de message que des
"Unknown error on line ... " que peut nous rapporter la console JS de IE :P
au moins ça peut faire rire un moment.

Sinon ajoute un mysql_error() pour afficher le message d'erreur en rapport avec l'exécution.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 965 Messages

14 mai 2006, 23:44

:D

ralala ces jeunes hein :D

Bah j'vais essayer de comprendre le pourquoi du comment mais c'est pas sur la synthaxe que ca merde mais plutôt sur la requete je pense donc je vais tester tout un par un

Mammouth du PHP | 965 Messages

14 mai 2006, 23:52

Code : Tout sélectionner

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 '*) AS nb FROM `mix`
pourtant ma synthaxe est correct non ?

Mammouth du PHP | 19672 Messages

15 mai 2006, 07:01

Quand tu postes ce genre de message, mets la requête utilisée avant le message d'erreur qu'on puisse avoir un élément à analyser: ta requête a dû évoluer depuis le début du sujet, mais tu ne l'indiques pas...

Fais-nous un copier/coller de la requête.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: