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

fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 13:48
non c'est au format US..j'y ai pensé mais comment faire si c'est le problème..
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 13:57
voila,la date de ta BDD est en US et toi tu transmet la date en Français,normal que ça ne marche pas. Pour remédier à ce petit soucis,moi généralement pour les champs dates dans ma BDD je ne les met pas en format date, mais plutôt en format "Varchar" et je met la taille du champ à 10 (00/00/0000). comme ça la valeur insérée dans ma BDD sera de type Varchar mais c'est une date au format français insérée.
Pour ton cas,s'il faut que tu changes, c'est facile de changer le type de champ en "Varchar" mais pour tes données il faudra faire autant,les mettre au format français.
J'espère que je me suis fait comprendre?
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 14:03
J'ai compris ce que tu voulais dire pour varchar mais dans mon site j'ai des formulaires avec des champs dates que je fais passer de US à Fr par DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps..est ce que cela peut poser un problème si je change le type??
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 14:10
ok,si tu fais passer tes dates au format US et qu'à l'insertion dans la BDD tout marche,donc tu laisses ainsi.seulement,tu dois faire de même dans ta requete de recherche.il faut changer la date qu'il envoi afin de faire la comparaison dans la BDD.
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
14 sept. 2011 à 14:17
tu veux dire comme ceci:

$requete = "SELECT DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE date_sortie BETWEEN '$v_date_debut' and '$v_date_fin' " ;

si c'est cela ..je l'ai déjà fait et toujours le même problème ..
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 14:21
c'est au plutôt au niveau de $date_debut et $date_fin que tu dois changer le format car ce sont ces deux variables que tu transmet. car $date_debut a cette valeur 01/09/2011 et $date_fin 09/09/2011. or il faut lors de l'envoi de ces variables,les changer en date US
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 14:29
pa très à l'aise avec les dates ..pourrais-tu m'indiquer comment faire...
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 14:33
moi aussi pas très à l'aise avec les dates,voila pourquoi je ne me casse pas la tête,je met mes champs en "varchar(10)" et j'ai plus de soucis devant.or pour ton cas,si tu veux faire comme moi,il faudra:

1-change le type dans la base de données (pas compliqué)

2- enlevé la conversion de tes dates dans tous tes formulaires

3- modifier les dates déja présente dans ta BDD pour qu'elles soient en français.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 14:35
oups...galère car je suis à la fin de mon site ..cela va faire du boulot...lol
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 14:39
eh oui!vraiment dommage.j'ai rencontré le même problème que toi quand je développait un site pour un client,et depuis je ne met plus mes champs date au format "date".
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 14:38
il n'y a donc pas d'autre solution....en plus je traite avec les dates du jour....dans certains formulaires j'ai des dates picker que j'ai passé de us à fr..j'espere que cela ne me fera pas revoir mes codes ..je vais essayé pour cette page ..
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 14:54
alors j'ai changé ma base et le code de la page qui est liée à celle_ci...et pas de changement...il faut pas oublié que là où je récupère mes dates .c'est avec des date picker qui à la base sont au format US et que je mets au format FR....donc le problème ne vient pas de là..je pense que mes champs date ne sont pas reconnus peut_être un problème dans l'input???????
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 15:18
ok,ton cas me fait tourner la tête.le problème se situe au niveau de tes input et des dates.tu utilise kel datepicker?tu l'as téléchargé sur le net?si oui,passe moi le lien et je vais le voir,si possible d'aider à le mettre directement en français
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 15:22
mais je l'ai déjà mis en francais mes dates picker avec une fonction qui fait partie des plugins et ce que j'ai mis c'est date picker jquery ui..je te disait qu'il étaient à la base au format date US et avec cette fonction,j'ai le format Francais ..donc là c'est bon mais je me posait la question si le problème ne venait pas de mes input car à mon avis c'est seulement la liste déroulante qui affiche donc mes champs dates n'ont aucunes action...???
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
14 sept. 2011 à 15:29
les champs dates n'ont aucune action,c'est qu'il y a un problème quelque part. puisque ta requete passe sous phpmyadmin.donc au niveau de tes input,il y a un souci.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
14 sept. 2011 à 15:44
j'ai regardé par rapport à une autre page qui contient action insert et j'ai un date picker ..par rapport à l'input..je ne pense pas.Donc cela ne vient pas de là..
Alors résumons ma requête est bonne,input aussi est bon..puisque cela me renvoye des lignes avec les dates ..en faîte c'est la plage de date qui ne fonctionne pas c'est à dire que normalent si je dis donne les chiffres de 1 à 3 normalement je dois avoir 1,2,3 au lieu de cela , cela fait 1,2,3,4,5...j'y perd mon php..je crois que je vais demandé à mon formateur de web..Merci pour ta patience .....à bientôt
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
15 sept. 2011 à 09:09
Bonjour,
Formateur absent..donc il semblerait que j'ai un problème sur mes déclarations de variables.
Quand je fais un var_dump,j'ai comme résultat ceci :

'date_sortie' => string '01/09/2011' (length=10)
'date_sortie1' => string '08/09/2011' (length=10)
'service' => string ' Archives' (length=9)

et je définis  $date_debut et $date_fin, je fais :

if (isset($_POST['date_debut']))
 {$v_date_debut=$_POST['date_debut'];
 }
 else
 {$v_date_debut="";} 

if (isset($_POST['date_fin']))
 {$v_date_fin=$_POST['date_fin'];
 }
 else
 {$v_date_fin="";}


Le problème viendrait entre les valeurs $_POST que je récupère, et les valeurs $_POST qui existent....
Mais je ne vois pas la solution...
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
15 sept. 2011 à 10:31
ok,fais moi voir ta requête de recherche stp
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
15 sept. 2011 à 10:34
Bonjour,
Voici ma requête avec les variables :
<?php
 if (isset($_POST['date_debut']))
			{$v_date_debut=$_POST['date_debut'];
			}
			else
			{$v_date_debut="";}			
		
		if (isset($_POST['date_fin']))
			{$v_date_fin=$_POST['date_fin'];
			}
			else
			{$v_date_fin="";}		

		 if (isset($_POST['date_sortie']))
			{$date_sortie=$_POST['date_sortie'];
			}
			else
			{$date_sortie="";}
					
		 ?>      
 <?php   			         
	   $requete = "SELECT date_sortie FROM servcart WHERE date_sortie BETWEEN '$v_date_debut' and '$v_date_fin'";
	   $req = mysql_query($requete) or die( mysql_error()) ;     
      ?> 	  	
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
15 sept. 2011 à 10:38
A quoi te sert ceci if (isset($_POST['date_sortie']))
{$date_sortie=$_POST['date_sortie'];
}
else
{$date_sortie="";}
apparement tu ne l'uitlises pas?
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
15 sept. 2011 à 10:43
c'est une déclaration de variable,si je l'enlève il me marque comme erreur variable non défini mais peut_être dois je la déclarée autrement??
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
Modifié par fauve1512 le 15/09/2011 à 11:23
j'ai refait mon code
<?php


if ( isset($_POST['date_sortie']))
{
$date_sortie= $_POST['date_sortie'];
$date_debut= $_POST['date_debut'];
$date_fin= $_POST['date_fin'];

$requete = "SELECT date_sortie FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin'";
$req = mysql_query($requete) or die( mysql_error()) ;
?>
<php }?>
mais sans changement..les deux variables $date_debut et $date_fin posent un problème !!!!!!
0