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

 



Dernière réponse
Sujet : [MySQL] J'ai 7 requêtes... Comment en avoir qu'une seule ?
Dost67 Excusez moi de revenir si tard mais fallait quand même dire merci, c'est exactement ce que je cherchais.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Dost67 Excusez moi de revenir si tard mais fallait quand même dire merci, c'est exactement ce que je cherchais.
bjbebert

trueslash a écrit a écrit :

SELECT Count(*), cat
FROM stock
GROUP BY cat;



C'est pas mal ca.
Si y a besoin, on peut même rajouter un WHERE cat < 8 AND cat > 0 avant le GROUP BY.

darklord

Dost67 a écrit a écrit :

 
je ne veux bien 7 résultats séparés mais avec une seule requête.  




 
 :heink:

Dost67

trueslash a écrit a écrit :

SELECT Count(*), cat
FROM stock
GROUP BY cat;
 
t'as essayé ça ?  




 
Non pas encore.

trueslash SELECT Count(*), cat
FROM stock
GROUP BY cat;
 
t'as essayé ça ?
Dost67

instantdharma a écrit a écrit :

salut
tu peux pas écrire une des chose suivantes ?

Code :
  1. 1. where cat < 8
  2. 2. where cat between 1 and 7
  3. 3. where cat = 1 or cat = 2 or... ... or cat = 7

 




 
Non sinon il me retourne le nb d'id pour toutes les cat confondues alors que je ne veux bien 7 résultats séparés mais avec une seule requête.

Dost67 Bah non parce qu'en fait mes 7 requêtes c'est :
SELECT COUNT(id) AS nb FROM stock WHERE cat='1'
SELECT COUNT(id) AS nb FROM stock WHERE cat='2'
SELECT COUNT(id) AS nb FROM stock WHERE cat='3'
SELECT COUNT(id) AS nb FROM stock WHERE cat='4'
SELECT COUNT(id) AS nb FROM stock WHERE cat='5'
SELECT COUNT(id) AS nb FROM stock WHERE cat='6'
SELECT COUNT(id) AS nb FROM stock WHERE cat='7'
 
Et j'en voudrais qu'une seule mais bien entendu nb changera de nom à chage fois... Par exemple :
SELECT COUNT(id) AS nb1 FROM stock WHERE cat='1'
SELECT COUNT(id) AS nb2 FROM stock WHERE cat='2'

... etc.
Mais le pb c'est que si j'écris les 2 lignes en italique dans MySQL ça ne lui plaît pas. Ma question est : comment exécuter ces requêtes en même temps (et pas une par une avec des boucles for).
instantdharma salut
tu peux pas écrire une des chose suivantes ?

Code :
  1. 1. where cat < 8
  2. 2. where cat between 1 and 7
  3. 3. where cat = 1 or cat = 2 or... ... or cat = 7

Dost67 Voici le code :

Code :
  1. for ($i=1; $i<=7; $i++) {
  2.   $sql_query[$i] = "SELECT COUNT(id) AS nb FROM stock WHERE cat='$i'";
  3. }
  4. $sql_id = mysql_pconnect($sql_vars[0], $sql_vars[1], $sql_vars[2]);
  5. for ($i=1; $i<=7; $i++) {
  6.   $resultat = mysql_db_query($sql_vars[3], $sql_query[$i], $sql_id);
  7.   if (mysql_num_rows($resultat) and ($res = mysql_fetch_object($resultat))) {
  8.     echo $res->nb;
  9.     mysql_free_result($resultat);
  10.   }
  11. }


 
J'aimerais que les 7 requêtes soient exécutées en une seule fois. J'ai fais divers essai avec PhpMyAdmin mais à chaque Wrong Syntax !
 
Merci d'avance

 

[jfdsdjhfuetppo]--Message édité par Dost67--[/jfdsdjhfuetppo]


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