Champs date + liste déroulante php [Résolu/Fermé]

Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
-
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
Afficher la suite 

20/145 réponses

0
Merci
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
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
et pour l'explication,je voudrais savoir les statistiques de consommation en choisisant une période de date...
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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> 
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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..
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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="";}

Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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 ????
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
689
0
Merci
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.
Messages postés
206
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
6 décembre 2011
1
0
Merci
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>