Champs date + liste déroulante php

Résolu/Fermé
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 - Modifié par fauve1512 le 12/09/2011 à 12:03
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 - 26 sept. 2011 à 13:31
Bonjour,

Dans ma page j'ai deux calender qui me permet dans les champs d'afficher deux date ex : entre :12/08/2010 et 08/09/2011 et une liste déroulante qui m'affiche les lignes selon mon choix(la liste fonctionne) maintenant je voudrais selon les choix des dates et le choix de la liste pouvoir afficher les lignes correspondantes ,je ne sais pas comment m'y prendre voici mon code :
<td height="35" colspan="5" align="center"  style="font-size:24px" >Statistiques de consommation   
 <tr> 
   <form id="service2" name="service2" method="POST" action="index.php?idpage=3"> 
        
     <td height="30" colspan="5" align="center"><label>Entre : </label> 
      <input type="text" id="datepicker" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" /> 
      <label>Et : </label> 
      <input type="text" id="datepicker1" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" /> 
      <label></label></td> 
     </form>  
    </tr>    
 <tr> 
   <td height="32" colspan="5" align="left"> 
    <form  name="service" method="post" action="index.php?idpage=3"> 
      <select  name="service"  onchange="submit">  
        <option selected> Choisissez un service</option> 
        <?php 
        $requete = "SELECT distinct service FROM servcart order by service"; 
      $req  = mysql_query($requete) or die( mysql_error() ) ;    
   
       while ($donnees=mysql_fetch_array($req)) 
          {           
         
     $service = $donnees['service']; 
    ?> 
        <!-- affichage de la liste déroulante --> 
        <option value="<?php echo $service ?>" <?php if ($service == $v_service) { echo 'Selected' ; } ?> ><?php echo $service?></option> 
        <?php 
                   } 
         ?> 
      </select>       
      <input  type="submit"  value="Rechercher" /> 
    </form> 

Quelqu'un a-t-il la réponse de la manière de s'y prendre ??? Merci

145 réponses

Je vais tenter de t'aider, par ailleurs je crois avoir compris mais je souhaite que tu réexplique ce que tu souhaite faire !

Mici
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
8 sept. 2011 à 17:40
Salut!
pour ta requete,tu dois utiliser between pour sélectionner la date entre les intervalles choisies.
exemple:
SELECT *
FROM ta_table
WHERE Date BETWEEN '06-Jan-1999' AND '10-Jan-1999' and liste-choix='ton_choix'

Voila un peu à quoi va ressembler ton code.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 09:04
Bonjour à vous
Je sais que je dois faire une requête avec beetween...mais c'est deux datepicker(calender) et c'est une seule colonne qui a les dates,je m'explique c'est pour des statistiques, une colonne contient toutes les dates de sorties de cartouches et je n'ai qu'une variable pour faire les deux dates qui est
$date_sortie=$_POST['date_sortie']
,j'ai essayé ceci WHERE date_sortie BETWEEN '$date_sortie'AND '$date_sortie',mais il cela ne fonctionne pas
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 09:06
et pour l'explication,je voudrais savoir les statistiques de consommation en choisisant une période de date...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 09:19
J'ai fait ceci :
<form id="service2" name="service2" method="POST" action="index.phpidpage=3">
     <td height="30" colspan="5" align="center"><label>Entre : </label>
     
<?php
       $requete3 = "SELECT DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE date_sortie BETWEEN '$date_sortie' AND '$date_sortie' and service='v_service'";
        $req3 = mysql_query($requete3) or die( mysql_error() ) ; 		
     ?>
      
<input type="text" id="datepicker" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" />
      <label>Et : </label>
      <input type="text" id="datepicker1" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" />
      <label></label></td>
     </form> 
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 09:58
Si je comprend bien, tu n'as qu'un seul champ date? je pense que s'il faut vérifier la date suivant une période,alors il te faut un deuxième champ.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:02
bonjour bissdebrazza,
J'ai deux champs qui se présente ainsi :
Entre : champs "datepicker" Et : champs "datepicker" et une liste déroulante qui contient tous les services.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:08
si tu regarde mon code au début de mon post ils sont bien présent..merci de prendre un peu de temps pour me répondre..
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 10:09
ok je vois.alors si je comprend bien tes deux datepicker ont le même nom. essai de faire datepicker pour ton champ datesortie et datepicker et tu met datesortie1 pour differencier les deux champs. car quand tu fais $date_sortie' pour le champ 1 et $date_sortie' pour le champ 2.Normal que ça passe pas.il faut differencier tes variables.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:16
j'ai fait ceci j'ai déclaré une variable supplèmentaire

if (isset($_POST['date_sortie']))
		{$date_sortie1=$_POST['date_sortie'];
		}
		else
		{$date_sortie1="";} et l'autre initiale
if (isset($_POST['date_sortie']))
		{$date_sortie=$_POST['date_sortie'];
		}
		else
		{$date_sortie="";}

ensuite j'ai fait ceci dans mon code

<form id="service2" name="service2" method="POST" action="index.php?idpage=3">
     <td height="30" colspan="5" align="center"><label>Entre : </label>
    
      <input type="text" id="datepicker" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" />
      <label>Et : </label>
      <input type="text" id="datepicker1" name="DATE_SORTIE1" value="<?php echo date('d/m/Y'); ?>" />
      <label></label>
      <?php
       $requete3 = "SELECT DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE date_sortie BETWEEN '$date_sortie' AND '$date_sortie1' and service='v_service'";
        $req3 = mysql_query($requete3) or die( mysql_error() ) ; 		
     ?>      
      </td>
     </form> 

  <?php 
	if ( isset($_POST['service'])
	and isset($_POST['DATE_SORTIE'])
	){  $service = $_POST['service'];
        $date_sortie= $_POST['DATE_SORTIE'];
		
		$requete2 = "SELECT uf,service,cartouche,sortie_stock,DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE service='$service' order by date_sortie";							   
	    $req2 = mysql_query($requete2) or die( mysql_error() ) ; 
		
			while ($donnees2=mysql_fetch_array($req2))
			{ 	   
	 ?>
		<tr>
		 <td><?php echo $donnees2['uf']; ?></td>
		 <td><?php echo $donnees2['service']; ?></td>
		 <td><?php echo $donnees2['cartouche']; ?></td>
         <td><?php echo $donnees2['DateTemps']; ?></td>
		 <td><?php echo $donnees2['sortie_stock']; ?></td>
		</tr>
              
       <?php           		          
		}
		}		 
?>

mais rien ne se passe où est mon erreur
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 10:20
essai ça

if (isset($_POST['date_sortie1']))
		{$date_sortie1=$_POST['date_sortie1'];
		}
		else
		{$date_sortie1="";} et l'autre initiale
if (isset($_POST['date_sortie']))
		{$date_sortie=$_POST['date_sortie'];
		}
		else
		{$date_sortie="";}

0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:25
je l'ai fait,rien ..question : mais étant sur la même colonne il ne peut rechercher date_sortie1 car dans ma bd cela n'existe pas non ????
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 10:31
même si tu es sur la même colone,ça recherche.essai de taper ta requête dans phpmyadmin.regarde cet exemple,il n'y a qu'une seule colonne date,mais on fait une recherche sur une période de cette colonne.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:40
J'ai testé la requete il ne me retourne aucune ligne et si je fait la requete sans le service juste le between il me retourne colonne date_sortie mais toutes les lignes à 00/00/0000
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 10:42
attention,il faut voir le format de ta date dans la base de données.généralement mysql enregistre la date au format anglais '0000/00/00' et si toi tu tape ta date au format français,ça ne marchera pas.regarde bien le format de ta date
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:45
excuses- moi,j'ai mis le mauvais format dans marequete test,j'ai zappé que le format était en US donc la requete juste avec les dates cela me renvoye bien les lignes correspondantes et si je rajoute le service il m'affiche juste la date la plus ancienne et une seule ligne
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 10:50
je ne comprend pas quand tu dis la date la plus ancienne.donc si tu tape la date actuelle (par exemple 08/09/2011 et 09/09/2011) ça ne t'affiche rien?et si ça te renvoi une seule ligne,alors vérifie bien que ça doit que te renvoyer cette ligne
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 10:55
je viens de tester ma page maintenant il me renvoye des lignes mais pas toutes,si je fais 01/09/2011 et 09/09/2011 il me recupère 4 lignes et normalement il y en a 5 ,la date 05/09/2011 n'est pas présente

4517 Archives BCI 6 E 520 Cyan 08/09/2011 1
4517 Archives 1720 08/09/2011 1
4517 Archives 343 Couleur 09/09/2011 10
4517 Archives 4096 A 2100 2200 09/09/2011 10
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
9 sept. 2011 à 11:00
vraiment bizarre.si la date du 05/09/2001 ne s'affiche pas,peut être que cette ligne ne respecte pas une condition dans la requête.au fait,envoi moi le code où tu as le formulaire avec tes deux datepicker.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
9 sept. 2011 à 11:10
voilà le code :

<tr>
   <form id="service2" name="service2" method="POST" action="index.php?idpage=3">
     <td height="26" colspan="5" align="center"><label>Entre : </label>   
      
 <input type="text" id="datepicker" name="DATE_SORTIE" value="<?php echo date('d/m/Y'); ?>" />
      <label>Et : </label>
      
<input type="text" id="datepicker1" name="DATE_SORTIE1" value="<?php echo date('d/m/Y'); ?>" />
      <label></label>
      
	  <?php
       $requete3 = "SELECT date_sortie FROM servcart WHERE date_sortie BETWEEN '$date_sortie' AND '$date_sortie1' and service='v_service'";
        $req3 = mysql_query($requete3) or die( mysql_error() ) ; 		
     ?>      
      
      </td>
     </form> 
    </tr>   
0