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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mySQL] Problème de requête avec count(*) [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mySQL] Problème de requête avec count(*) [résolu]

n°279074
f L Y
Posté le 04-01-2003 à 11:48:47  profilanswer
 

Bonjour,
 
J'ai un problème avec une requête. La voici :
 
SELECT count(*)
FROM `booking`
WHERE car_model="Peugeot 406"
AND ((start_booking<="2002-01-01" AND end_booking>="2002-01-29" ) OR (start_booking>="2002-01-01" AND start_booking<="2002-01-29" ) OR (end_booking>="2002-01-01" AND end_booking<="2002-01-29" ));
 
Ceci n'est qu'un exemple, mais en gros la requête permet de savoir combien de voitures du type Peugeot 406 sont indisponibles entre les dates du 1er janvier 2002 et 29 janvier 2002 (deux dates entrés par n'importe quel utilisateur).
Je l'ai testé la requête marche parfaitement, mais seul problème je n'arrive pas à stocker le résultat obtenu (par exemple "4", puisqu'il s'agit d'un count(*)) dans une variable. Voici mon script complet :
 
$requete="ma requête vue plus haut"
$nbr_booking=mysql_query($requete,$connect);
echo($nbr_booking);
 
Selon moi le nombre de résultats devraient être contenus dans la variable $nbr_booking non ? Au lieu de cela, l'écho me renvoie : "Resource id #2" quelque soit le résultat !?! :heink:


Message édité par f L Y le 04-01-2003 à 12:42:15
mood
Publicité
Posté le 04-01-2003 à 11:48:47  profilanswer
 

n°279103
Kyle
Posté le 04-01-2003 à 12:17:10  profilanswer
 

Code :
  1. SELECT count(*) AS nb_type
  2. FROM `booking`
  3. WHERE car_model="Peugeot 406"
  4. AND ((start_booking<="2002-01-01" AND end_booking>="2002-01-29" ) OR (start_booking>="2002-01-01" AND start_booking<="2002-01-29" ) OR (end_booking>="2002-01-01" AND end_booking<="2002-01-29" ));


 
Puis tu sort le nb_type dans un mysql_fetch_array ou otre :)

n°279116
f L Y
Posté le 04-01-2003 à 12:36:47  profilanswer
 

J'ai suivi ton exemple mais là j'ai un autre problème incompréhensible  :heink:  
 
Voici mon script complet :
 
<?PHP
 
$model="Peugeot 406";
$date_start="2002-01-01";
$date_end="2002-12-01";
 
include ("connexion.php" );
$requete="SELECT count(*) AS nb".
         "FROM `booking`".
         "WHERE car_model=\"$model\"".
         "AND ((start_booking<=\"$date_start\" AND end_booking>=\"$date_end\" ) OR (start_booking>=\"$date_start\" AND start_booking<=\"$date_end\" ) OR (end_booking>=\"$date_start\" AND end_booking<=\"$date_end\" ))";
 
$result=mysql_query($requete,$connect);
$row=mysql_fetch_array($result);
$nb_booking=$row["nb"];
echo($nb_booking);
 
?>
 
Il me retourne comme erreur :
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\easycar\test_booking.php on line 11
 
?!


Message édité par f L Y le 04-01-2003 à 12:37:24
n°279118
Profil sup​primé
Posté le 04-01-2003 à 12:38:21  answer
 

"FROM `booking`"


        pk ces '   '?


Message édité par Profil supprimé le 04-01-2003 à 12:38:42
n°279120
Kyle
Posté le 04-01-2003 à 12:39:08  profilanswer
 

a la fin de la requette rajoute : GROUP BY car_model

n°279125
f L Y
Posté le 04-01-2003 à 12:40:37  profilanswer
 

Non c'est bon je viens de comprendre mon erreur...
j'avais juste oublié les quote autour de nb :
 
"SELECT count(*) AS `nb`"
 
Merci à tous :)

n°279126
f L Y
Posté le 04-01-2003 à 12:41:38  profilanswer
 

chacal_one333 a écrit :

"FROM `booking`"


        pk ces '   '?


 
J'ai toujours été obligé d'entourer les noms de tables ou de champs par des quotes sans quoi ça marche pas.

n°279131
Profil sup​primé
Posté le 04-01-2003 à 12:43:58  answer
 

f L Y a écrit :


 
J'ai toujours été obligé d'entourer les noms de tables ou de champs par des quotes sans quoi ça marche pas.  

[:cybersonic]

n°279133
Kyle
Posté le 04-01-2003 à 12:51:15  profilanswer
 

Et si tu l'écrit comme ca : :??:
 

Code :
  1. $requete="
  2. SELECT count(*) AS nb
  3. FROM booking
  4. WHERE car_model= '$model'
  5. AND ((start_booking<='$date_start'
  6. AND end_booking>='$date_end')
  7. OR (start_booking>='$date_start'
  8. AND start_booking<='$date_end')
  9. OR (end_booking>='$date_start'
  10. AND end_booking<='$date_end'))";

n°279138
f L Y
Posté le 04-01-2003 à 13:01:44  profilanswer
 

Kyle a écrit :

Et si tu l'écrit comme ca : :??:
 

Code :
  1. $requete="
  2. SELECT count(*) AS nb
  3. FROM booking
  4. WHERE car_model= '$model'
  5. AND ((start_booking<='$date_start'
  6. AND end_booking>='$date_end')
  7. OR (start_booking>='$date_start'
  8. AND start_booking<='$date_end')
  9. OR (end_booking>='$date_start'
  10. AND end_booking<='$date_end'))";




 
Ouais je viens de comprendre... comme ça ça marche, mais comme j'utilise toujours la concaténation pour mieux m'y retrouver là je suis obligé de mettre des quotes.

mood
Publicité
Posté le 04-01-2003 à 13:01:44  profilanswer
 

n°279147
Kyle
Posté le 04-01-2003 à 13:23:29  profilanswer
 

f L Y a écrit :


 
Ouais je viens de comprendre... comme ça ça marche, mais comme j'utilise toujours la concaténation pour mieux m'y retrouver là je suis obligé de mettre des quotes.


 
Moi aussi j'utilise la concaténation pour les variables et au final ce me donne ca :
 

Code :
  1. $requete="
  2. SELECT count(*) AS nb
  3. FROM booking
  4. WHERE car_model= '".$model."'
  5. AND ((start_booking<='".$date_start."'
  6. AND end_booking>='".$date_end."')
  7. OR (start_booking>='".$date_start."'
  8. AND start_booking<='".$date_end."')
  9. OR (end_booking>='".$date_start."'
  10. AND end_booking<='".$date_end."'))";


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mySQL] Problème de requête avec count(*) [résolu]

 

Sujets relatifs
Problème de liens[Mysql] Base de donnée "figée" chez free.fr
Probleme avec une pile en c ???[PHP] Problème de "mise à jour" [résolu]
.htaccess inopérant bourdail -- resolu !kdevelop : problème de breakpoint
Probleme avec mon menu ....Probleme avec des espaces... [ Resolu ]
Plus de sujets relatifs à : [mySQL] Problème de requête avec count(*) [résolu]


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