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

  FORUM HardWare.fr
  Programmation
  PHP

  Requete COUNT par menu deroulant.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete COUNT par menu deroulant.

n°1992684
fscalda
Gaaaaaazzzz
Posté le 12-05-2010 à 17:12:46  profilanswer
 

Hello,  
 
bon, je sèche complètement sur un problème. :sweat:  
 
Je souhaite afficher une page, sur laquelle on pourra choisir le mois, le jour, l'heure par menu déroulant, et en validant, on calcule le nombre d'entrée avec COUNT.
Par exemple, je voudrais savoir combien Seb à traité de fiche en 2010 au mois de mai et le 12.
 
Dans ma base ,c'est un champ datetime, et un champ modo.
 
Pour l'instant, j'affiche sans probleme le nombre de fiche validé par un modo, mais pour le reste, j'en suis loiiiiiiiiin  :sweat:  
 

Code :
  1. <form method="post" action="stats.php">
  2. <table width="600" border="0" align="center" cellpadding="0" cellspacing="0" id="tableprincipale">
  3.   <tr>
  4.     <td width="100" class="td4">Op&eacute;rateur : </td>
  5.     <td width="100" class="td5">
  6. <label>
  7.        <select name="operateur" id="operateur">
  8.         <option value="">Choix</option>
  9.         <option value="operateur01">operateur 01</option>
  10.         <option value="operateur02">operateur 02</option>
  11.         <option value="operateur03">operateur 03</option>
  12.         <option value="operateur04">operateur 04</option>
  13.         </select>
  14.     </label> </td>
  15.     <td class="td5">Ann&eacute;e</td>
  16.     <td class="td5">0</td>
  17.     <td class="td5">Mois</td>
  18.     <td class="td5">0</td>
  19.     <td class="td5">Jour</td>
  20.   </tr>
  21.   <tr>
  22.     <td colspan="9" class="td4"><input type="submit" name="Submit" value="Envoyer" /></td>
  23.     </tr>
  24. </table>
  25. </form>
  26. <br />
  27.     <?php
  28. // connexion a la base
  29. require_once("connexion.php" );
  30. $BD_link = mysql_connect("${'BD_host'}${'BD_port'}", $BD_login, $BD_pass) or die("Connexion de la base impossible : ". mysql_error());
  31. $operateur = $_POST["operateur"];
  32. //comptage des entrées
  33.     $req = mysql_query("SELECT COUNT(*) as Count FROM `prospect` WHERE valid ='1' AND operateur = '$operateur' " );
  34.       if ($req)
  35.       {
  36.          $res = mysql_fetch_array($req);
  37.     echo '<center>L\' ',$operateur,' à traité</center>';
  38.     echo '<center>Il y a '.$res["Count"].' annonce(s)</center>';
  39.       }
  40. ?>

mood
Publicité
Posté le 12-05-2010 à 17:12:46  profilanswer
 

n°1992686
skeye
Posté le 12-05-2010 à 17:16:14  profilanswer
 

qu'est-ce qui te pose problème? Il suffit d'ajouter les champs qui composent la date à ton formulaire, et de rajouter une condition "and madate = ?" à ta requête...?


---------------
Can't buy what I want because it's free -
n°1992702
fscalda
Gaaaaaazzzz
Posté le 12-05-2010 à 17:40:47  profilanswer
 

C'est que je me complique, et que je n'arrete pas de bloquer sur des choses évidentes  :(  
Tu va voir l'engin  [:al zheimer]  
 

Code :
  1. <form method="post" action="stats.php">
  2. <table width="600" border="0" align="center" cellpadding="0" cellspacing="0" id="tableprincipale">
  3.   <tr>
  4.     <td width="100" class="td4">Op&eacute;rateur : </td>
  5.     <td width="100" class="td5">
  6. <label>
  7.        <select name="operateur" id="operateur">
  8.         <option value="">Choix</option>
  9.         <option value="operateur01">operateur 01</option>
  10.         <option value="operateur02">operateur 02</option>
  11.         <option value="operateur03">operateur 03</option>
  12.         <option value="operateur04">operateur 04</option>
  13.         </select>
  14.     </label> </td>
  15.     <td class="td5">Ann&eacute;e</td>
  16.     <td class="td5"><select name="annee" id="annee">
  17.   <option value="2009">2009</option>
  18.       <option value="2010">2010</option>
  19.       <option value="20111">2011</option>
  20.     </select></td>
  21.     <td class="td5">Mois</td>
  22.     <td class="td5"><select name="mois" id="mois">
  23.  <option value="01">01</option>
  24.  <option value="02">02</option>
  25.  <option value="03">03</option>
  26.  <option value="04">04</option>
  27.  <option value="05">05</option>
  28.  <option value="06">06</option>
  29.     </select></td>
  30.     <td class="td5">Jour</td>
  31.     <td class="td5"><select name="jour" id="jour">
  32.       <option value="01">01</option>
  33.       <option value="02">02</option>
  34.       <option value="03">03</option>
  35.       <option value="04">04</option>
  36.       <option value="05">05</option>
  37.       <option value="06">06</option>
  38.   <option value="06">06</option>
  39.  <option value="07">07</option>
  40.  <option value="08">08</option>
  41.  <option value="09">09</option>
  42.  <option value="10">10</option>
  43.  <option value="11">11</option>
  44.  <option value="12">12</option>
  45.  <option value="13">13</option>
  46.  <option value="14">14</option>
  47.  <option value="15">15</option>
  48.  <option value="16">16</option>
  49.  <option value="17">17</option>
  50.  <option value="18">18</option>
  51.     </select></td>
  52.   </tr>
  53.   <tr>
  54.     <td colspan="10" class="td4"><input type="submit" name="Submit" value="Envoyer" /></td>
  55.     </tr>
  56. </table>
  57. </form>
  58. <br />
  59.     <?php
  60. // connexion a la base
  61. require_once("connexion.php" );
  62. $BD_link = mysql_connect("${'BD_host'}${'BD_port'}", $BD_login, $BD_pass) or die("Connexion de la base impossible : ". mysql_error());
  63. $operateur = $_POST["operateur"];
  64. $annee = $_POST["annee"];
  65. $mois = $_POST["mois"];
  66. $jour = $_POST["jour"];
  67. $madate = $jour." ".$mois." ".$annee;
  68. //comptage des entrées
  69. //$jour." ".$mois." ".$annee;  
  70.     $req = mysql_query("SELECT COUNT(*) as Count FROM `prospect` WHERE valid ='1' AND operateur = '$operateur' AND date = '$madate'  " );
  71.       if ($req)
  72.       {
  73.          $res = mysql_fetch_array($req);
  74.     echo '<center>L\' ',$operateur,' à traité</center>';
  75.     echo '<center>Il y a '.$res["Count"].' annonce(s)</center>';
  76.       }
  77. ?>


n°1993081
fscalda
Gaaaaaazzzz
Posté le 14-05-2010 à 16:28:28  profilanswer
 

Une âme charitable, car j'ai rien comme resultat qui s'affiche avec mon second code, il trouve toujours 0 snifff.


Message édité par fscalda le 14-05-2010 à 16:29:22
n°1993394
Pascal le ​nain
Posté le 16-05-2010 à 01:24:34  profilanswer
 

DATETIME attend une date ET une heure.
http://dev.mysql.com/doc/refman/5.0/fr/datetime.html
Si tu utililises juste une date, utilise le type DATE.
De plus, utilise un point ou un tiret comment séparateur plutot qu'un espace...
 
Ensuite je te conseille de tester tes requetes via phpmyadmin pour voir si le problème vient de ta requete.
 
Et ca :  
 

"${'BD_host'}${'BD_port'}"


 
Fait gerber...


Message édité par Pascal le nain le 16-05-2010 à 01:25:20
n°1993725
fscalda
Gaaaaaazzzz
Posté le 17-05-2010 à 15:46:42  profilanswer
 

Hello Pascal le nain, désolé de t'avoir fait  :sweat:  avec ma requête de connexion.  
 
DATETIME est utile dans mon cas, car j'aurais besoin de faire des stats à l'heure.

n°1993729
Pascal le ​nain
Posté le 17-05-2010 à 15:53:02  profilanswer
 

Dans ce cas là, il faut que tu castes ta date lors de ta requete SQL ou que tu précises une heure à chaque fois.
 
'SELECT COUNT(*) as Count FROM `prospect` WHERE valid ='1' AND operateur = '$operateur' AND date = CAST("'.$madate.'" AS DATETIME)

n°1993794
fscalda
Gaaaaaazzzz
Posté le 17-05-2010 à 17:12:03  profilanswer
 

:cry:  Marche pas plus, pourtant j'ai refait ma variable madate en me disant ça doit venir de la, et rien.
 

Code :
  1. $madate = $annee."-".$mois."-".$jour;


 

n°1993815
rufo
Pas me confondre avec Lycos!
Posté le 17-05-2010 à 17:42:23  profilanswer
 

plutôt qu'un CAST, y'a la fonction DATE_FORMAT() ;) Ca permet de travailler sur l'année, sur le mois, sur la semaine, sur le jour...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1993938
fscalda
Gaaaaaazzzz
Posté le 18-05-2010 à 09:22:46  profilanswer
 

J'ai lu la notice du CAST, j'en suis loin d'avoir tout compris, et attenant, je me suis fait un bricolage qui fonctionne. Je vais regarder DATE_FORMAT() pour voir si je m'en sors mieux  [:aztechxx]  
 
Merci à tous de vos contributions, ça me fait avancer.

mood
Publicité
Posté le 18-05-2010 à 09:22:46  profilanswer
 

n°1993944
rufo
Pas me confondre avec Lycos!
Posté le 18-05-2010 à 09:37:05  profilanswer
 

ben CAST(), ça fait la même chose qu'en C, ça "convertit" un type de donnée en un autre, d'une façon plus ou moins heureuse parfois. DATE_FORMAT() est fait spécialement pour modifier le format d'affichage d'une date/heure (par ex, afficher la semaine correspondante, ou uniquement l'année sur 4 chiffres et le mois sur 2...)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1993951
fscalda
Gaaaaaazzzz
Posté le 18-05-2010 à 09:55:00  profilanswer
 

Merci RUFO pour ces précisions, je vais tenter un nouveau select avec cette fonction.


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

  Requete COUNT par menu deroulant.

 

Sujets relatifs
requete sur plusieurs bases [resolu]Requete ajax sur base sql
Access champ null dans une requêteUne requête dans une autre requête sql
[Résolu] Questions Menu déroulant /opacité/IE7Requete Ldap sur Active directory 2008
menu déroulant largeurs variables sans JSMenu "Cloud"
Plus de sujets relatifs à : Requete COUNT par menu deroulant.


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