fonction select count???[resolu-merci!]

fonction select count???[resolu-merci!] - PHP - Programmation

Marsh Posté le 21-01-2006 à 19:28:01    

salut a tous,
 
voila dans le cadre de mon projet , un site web en php, j'aimerais bien mettre sur un page le nombre de personne sur mon site , ces derniers sont divisible en 3groupes , appellon groupes. Une page visible par tout les membres.
 
voici donc ma requete :  
 
ligne 160:: $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM utilisateur WHERE groupes=1" );
ligne 161::  while ( $donnees = mysql_fetch_row ($retour) );
 
ligne 162::  echo $donnees['nbre_entrees'];
 
 
ensuite , j'ai ceci comme erreur:
 
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\weblocal\...\login.php on line 161
 
 
quel est l'erreur que je fait?
 
merci a vous tous :)


Message édité par rut le 23-01-2006 à 00:29:28
Reply

Marsh Posté le 21-01-2006 à 19:28:01   

Reply

Marsh Posté le 21-01-2006 à 19:47:31    

L'erreur que tu fais c'est de croire qu'on est magiciens...[:petrus75]
 
A moins que je ne bigle ta requête parait bonne...tu as essayé de l'exécuter à la main pour voir?
Tu as testé le retour de mysql_query? C'est lui qui doit te retourner false, là, à priori...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-01-2006 à 23:05:08    

desoler je ne comprend pas
 
help

Reply

Marsh Posté le 21-01-2006 à 23:10:41    

Reply

Marsh Posté le 21-01-2006 à 23:11:41    

Ce que le monsieur te dit, c'est qu'avec ce que tu nous donnes, on peut pas vraiment situé l'erreur. Syntaxiquement, ta requête est bonne mais remplace ta ligne 160 par

Code :
  1. $retour = mysql_query("SELECT COUNT(1) AS nbre_entrees FROM utilisateur WHERE groupes=1" ) or die(mysql_error());


et donne nous le message d'erreur.


Message édité par naceroth le 21-01-2006 à 23:12:08
Reply

Marsh Posté le 21-01-2006 à 23:36:00    

Champ '1' inconnu dans where clause
 
edit: ou plutot Champ '1' inconnu dans field list


Message édité par rut le 21-01-2006 à 23:38:31
Reply

Marsh Posté le 22-01-2006 à 02:31:55    

Tiens... tu utilises quelle version de mysql ?
 
Essaye un

Code :
  1. $retour = mysql_query("SELECT COUNT(groupes) AS nbre_entrees FROM utilisateur WHERE groupes=1" ) or die(mysql_error());


 
voire la même requête sans la clause where en cas d'erreur.

Reply

Marsh Posté le 22-01-2006 à 17:56:45    

Champ '1' inconnu dans where clause
 
et sans le where , ca donne rien

Reply

Marsh Posté le 22-01-2006 à 19:08:35    

l'erreur est pas dans la requete SQL mais dans PHP:
tu veux le champs "nbre_entrees"
alors utilise  
while ( $donnees = mysql_fetch_assoc ($retour) )
{....
}
plutot que  
while ( $donnees = mysql_fetch_row ($retour) )
{...
}
 
mysql_fetch_row() comme son nom l'indique recupere une ligne entiere (row) ou...plusieurs lignes si plusieurs occurences ;-) ).
mysql_fetch_assoc() va chercher le champs demandé ($donnes['nbre_entrees']) dans la ligne  
 
essaie ca et dis nous si ca marche

Message cité 1 fois
Message édité par jokari34 le 22-01-2006 à 19:10:32
Reply

Marsh Posté le 22-01-2006 à 20:02:30    

jokari34 a écrit :

l'erreur est pas dans la requete SQL mais dans PHP:
...


 
Certes, aussi, mais c'est pas vraiment l'explication du message d'erreur...
 

rut a écrit :

Champ '1' inconnu dans where clause
 
et sans le where , ca donne rien


 
Il est de quel type, ton champs groupes ?  :heink:  

Reply

Marsh Posté le 22-01-2006 à 20:02:30   

Reply

Marsh Posté le 22-01-2006 à 21:49:09    

mysql_fetch_assoc  fait le meme resultat
 
champs=groupes type=varchar(50) interclassemnt=latin1_swedish_ci   attribut=vide  null=Non  

Reply

Marsh Posté le 22-01-2006 à 22:04:46    

au lieu de groupes=1
met groupes='1' sachant que ton champs est un varchar

Reply

Marsh Posté le 22-01-2006 à 22:14:12    

Remet le count(*), ou count(id_user) parce que  
 
select COUNT(groupes) AS nbre_entrees FROM utilisateur WHERE groupes like '1'
 
ça donne tjrs 1  [:matleflou]
 
Sinon je proposerai de rajouter un "group by groupes" aussi mais je me demande si c pas facultatif ...

Message cité 1 fois
Message édité par Ricco le 22-01-2006 à 22:14:43

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 22-01-2006 à 23:01:45    

j'ai essayer tout , groupes='1' ou count(*)ou(id_user)ou(groupes)ou(1) et ca reste le meme , le "group by groupes" c'est quoi?
 
est ce que l'erreur peut venir de l'echo?

Reply

Marsh Posté le 22-01-2006 à 23:02:08    

Ricco a écrit :

Remet le count(*), ou count(id_user) parce que  
 
select COUNT(groupes) AS nbre_entrees FROM utilisateur WHERE groupes like '1'
 
ça donne tjrs 1  [:matleflou]
...


 
N'importe quoi...

Reply

Marsh Posté le 22-01-2006 à 23:16:10    

rut a écrit :

j'ai essayer tout , groupes='1' ou count(*)ou(id_user)ou(groupes)ou(1) et ca reste le meme , le "group by groupes" c'est quoi?
 
est ce que l'erreur peut venir de l'echo?


 
Ca affiche quoi le myslq_error ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 22-01-2006 à 23:16:22    

Reply

Marsh Posté le 22-01-2006 à 23:18:24    

rut a écrit :


est ce que l'erreur peut venir de l'echo?


 
Si c'est toujours le "or die" qui provoque l'arrêt du programme, non... Mais je vois plus trop d'où elle sort ton erreur. Tu n'as pas un moyen pour exécuter tes requêtes "en live" sur le serveur sql ? (via phpmyadmin ou autre ?)

Reply

Marsh Posté le 22-01-2006 à 23:19:12    

naceroth a écrit :

N'importe quoi...

... effectivament je me suis pê gourré. Lol une connerie de moins à sortir en entretien.  :whistle:  


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 22-01-2006 à 23:22:02    

j'travail avec easyphp en local pour le moment

Reply

Marsh Posté le 22-01-2006 à 23:24:17    


 
On doit comprendre quoi là ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 22-01-2006 à 23:26:13    

rut a écrit :

j'travail avec easyphp en local pour le moment


 
Oui, donc, tu as un phpmyadmin qui doit trainer quelque part, colle y ta requête qu'on sache au moins si elle est correcte...

Reply

Marsh Posté le 22-01-2006 à 23:27:35    

Ricco a écrit :

On doit comprendre quoi là ?


 
Si c'est "je me fous de vous depuis 24 heures", je demande le TT :D

Reply

Marsh Posté le 22-01-2006 à 23:31:13    

ok naceroth j'esaye ca
 
le :D etait pour le " n'importe quoi"
 

Reply

Marsh Posté le 22-01-2006 à 23:49:54    

ca me donne ceci : 1064 - Erreur de syntaxe pr賠de '$retour=mysql_query("select count(*) AS nbre_entrees FROM utilis' ࠬa ligne 1

Reply

Marsh Posté le 22-01-2006 à 23:54:59    

Euh oui, forcément :D
 
Juste la requête :

Code :
  1. SELECT COUNT(groupes) AS nbre_entrees FROM utilisateur WHERE groupes='1'

Reply

Marsh Posté le 22-01-2006 à 23:57:03    

c'est ok , ca me dis bien le nombre juste
 

Reply

Marsh Posté le 23-01-2006 à 00:07:08    

Là, je sèche... Tu peux nous remettre le code php tel qu'il est maintenant ?
 
(Où vous avez planqué la caméra les gars ???)

Reply

Marsh Posté le 23-01-2006 à 00:10:36    

$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
 $retour = mysql_query("SELECT COUNT(groupes) AS nbre_entrees FROM utilisateur WHERE groupes='1'" )  or die(mysql_error());
 while ( $donnees = mysql_fetch_row($retour) );
  {
  echo $donnees['nbre_entrees'];
  }
 
 
et non c'est vraiment pas un gag :p

Reply

Marsh Posté le 23-01-2006 à 00:17:37    

Bon, déjà c'est

Code :
  1. while ( $donnees = mysql_fetch_array($retour) );
  2.   {
  3.   echo $donnees['nbre_entrees'];
  4.   }


 
comme l'avait signalé jokari34 bien plut haut :)

Reply

Marsh Posté le 23-01-2006 à 00:21:28    

pareil , il n'y a pas d'erreur , mais pas une reponse souhaiter :s

Reply

Marsh Posté le 23-01-2006 à 00:25:05    

Erf, oh le con...  vire moi ce put$#n de ; à la fin de la ligne du while...

Reply

Marsh Posté le 23-01-2006 à 00:25:32    

2 choses :o  
- pas de ";" à la fin de la ligne du while
- la requête telle qu'elle est écrite renverra toujours une et une seule ligne, pas la peine de faire une boucle while [:proy]
 
edit : [:grilled]


Message édité par mrbebert le 23-01-2006 à 00:26:10
Reply

Marsh Posté le 23-01-2006 à 00:28:07    

vive les ";" :D
 
merci a vous , vous etes de vrai cerveau dans ce business:)
 
bonne nuit a tous

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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