Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
863 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [php/Mysql] Problème avec SELECT COUNT(*)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php/Mysql] Problème avec SELECT COUNT(*)

n°224718
Combi_A_Ve​ndre
Posté le 07-10-2002 à 21:02:01  profilanswer
 

Salut à tous,
 
Dans une base de données de petites annonces, je veux voir le nombre d'annonces par encore vlidées par l'administrateur, en php, j'ai donc fait :

Code :
  1. $db = mysql_connect("sql.free.fr", "login", "password" );
  2. mysql_select_db("mabase",$db);
  3. $req = mysql_query("SELECT COUNT(*) FROM `annonces` WHERE valide='0'" );
  4. echo '<center>Il y a '.$req.' annonce(s) en attente de validation</center>';
  5. mysql_close();


 
Le problème, c'est que ça m'affiche "2" alors qu'il n'y en a pas...
Quand je lance la même requéte dans phpMyAdmin, là le résultat est bon (0)
 
J'ai merdé où?
 
merci,
vw


Message édité par Combi_A_Vendre le 07-10-2002 à 21:02:52

---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
mood
Publicité
Posté le 07-10-2002 à 21:02:01  profilanswer
 

n°224807
zion
Plop
Posté le 08-10-2002 à 01:23:58  profilanswer
 

 $req = mysql_query("SELECT COUNT(*) FROM `annonces` WHERE valide='0'" );
  echo '<center>Il y a '.$req.' annonce(s) en attente de validation</center>';  
 
Tu affiches $req qui est le résultat de ta requête... pas glop ca.
 
je verrais plutôt un truc du genre (c pas la seule solution)
 
 

Code :
  1. $req = mysql_query("SELECT COUNT(*) as Count FROM `annonces` WHERE valide='0'" );
  2.   if ($req)
  3.   {
  4.      $res = mysql_fetch_array($req);
  5.   echo '<center>Il y a '.$res["Count"].' annonce(s) en attente de validation</center>';
  6.   }


 
Ca devrait marcher mieux :sol:  
 
(Y a mieux, mais j'aime bien le fetch_array et le fait de tout nommer, enfin chacun ses manies)


---------------
Informaticien.be - Lancez des défis à vos amis
n°225251
Combi_A_Ve​ndre
Posté le 08-10-2002 à 19:33:34  profilanswer
 

Ca marche très bien,
 
Merci,
vw.


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
n°225366
skylight
Made in France.
Posté le 08-10-2002 à 23:36:24  profilanswer
 

zion a écrit a écrit :

  $req = mysql_query("SELECT COUNT(*) FROM `annonces` WHERE valide='0'" );
  echo '<center>Il y a '.$req.' annonce(s) en attente de validation</center>';  
 
Tu affiches $req qui est le résultat de ta requête... pas glop ca.
 
je verrais plutôt un truc du genre (c pas la seule solution)
 
 

Code :
  1. $req = mysql_query("SELECT COUNT(*) as Count FROM `annonces` WHERE valide='0'" );
  2.   if ($req)
  3.   {
  4.      $res = mysql_fetch_array($req);
  5.   echo '<center>Il y a '.$res["Count"].' annonce(s) en attente de validation</center>';
  6.   }


 
Ca devrait marcher mieux :sol:  
 
(Y a mieux, mais j'aime bien le fetch_array et le fait de tout nommer, enfin chacun ses manies)




 
MOuais, pour ce genre de choses non rattachées a un champ spécifique, autant faire un mysql_num_rows($reg); :D

n°225376
zion
Plop
Posté le 08-10-2002 à 23:49:06  profilanswer
 

skylight a écrit a écrit :

 
 
MOuais, pour ce genre de choses non rattachées a un champ spécifique, autant faire un mysql_num_rows($reg); :D




 
J'aime bien nomer les champs quand même  :kaola:


---------------
Informaticien.be - Lancez des défis à vos amis
n°225377
zion
Plop
Posté le 08-10-2002 à 23:49:51  profilanswer
 

Au fait, t'as pas besoin de faire de fetch après avoir fait un drop database  [:ddr555]


---------------
Informaticien.be - Lancez des défis à vos amis
n°225379
MagicBuzz
Posté le 08-10-2002 à 23:58:47  profilanswer
 

skylight a écrit a écrit :

 
MOuais, pour ce genre de choses non rattachées a un champ spécifique, autant faire un mysql_num_rows($reg); :D




Niveau perfs, un count est incomparablement plus rapide que compter les lignes de résultat d'une requête.
 
En effet, dans le cas où tu comptes, tu doit charger de la base la totalité des lignes concernées, ce qui est non seulement gourmand en mémoire, mais en plus en temps d'accès disque/mémoire.
 
Avec un count sur un champ indexé (ou sur *), tu ne fait que lire dans ton index, ce qui est quelque peu plus rapide ;)

n°225383
zion
Plop
Posté le 09-10-2002 à 00:07:50  profilanswer
 

'Tain, j'avais même pas réagit qu'il m'avait parlé du num_rows, j'aurais juré qu'il voulait plutot utiliser un fetch_row.
[:totoz]


---------------
Informaticien.be - Lancez des défis à vos amis

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [php/Mysql] Problème avec SELECT COUNT(*)

 

Sujets relatifs
[MySQL] quote simple (apostrophe) et quote simple oblique (AltGr 8)[PHP MySQL] Problème d'apostrophe ! [MONGOLE INSIDE]
[PHP BB] Un ptit problème de mailchti problème de validation. (W3C)
problème de vérification en JSProblème de script: passer une valeur d'un popup à la fenêtre...
[mysql/php] architecture de site et gestion dune base de donnéeMySQL - Comment avoir la prochaine valeur d'un increment??
[NOOB MYSQL] Mysql et les clés étrangères? 
Plus de sujets relatifs à : [php/Mysql] Problème avec SELECT COUNT(*)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR