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

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 12:06
que représente UF ? es-tu sûre que ton nom formulaire,la liste déroulante a un name="uf"?
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 22/09/2011 à 12:17
après ta réflexion, je viens de faire un test car ma liste ne contient que le service donc j'ai changé mes variables ainsi
 if (isset($_POST['date_debut'])and isset($_POST['date_fin'])and isset($_POST['service'])) 
        {       
   $date_debut=convertionDate($_POST['date_debut']); 
   $date_fin=convertionDate($_POST['date_fin']); 
   $service=$_POST['service']; 
   echo "service: ".$service; 
echo "date debut: ".$date_debut; 
 echo "date fin: ".$date_fin;

et dans mon where ceci
FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin' and service='$service'

ce qui me donne pour l'echo qui s'affiche
service: Archives date debut: 2011-09-01 date fin: 2011-09-08
c'est un peu mieux mais toujours pas de lignes
Ensuite j'ai testé la requête sous phpmyadmin et ne me retourne aucunes lignes
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
Modifié par bissdebrazza le 22/09/2011 à 12:22
ok,es-tu sûre que dans ta BDD tu as des Archives dans cette plage de date? car phpmyadmin ne t'affiche rien,verifie que tu as bien des données qui vont correspondre.
J'espère que tu sélectionne aussi le service dans ta requête?
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 12:22
j'ai bien les données qu'il faut car quand je fais avec la plage date il me ressort bien les dates
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
22 sept. 2011 à 12:27
j'ai testé la requete à nouveau avec service='Archives'pas de retour de ligne et
avec uf='4517'cela me retourne des lignes
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 12:32
c'est quoi la différence entre UF et SERVICE ?
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 12:37
uf c'est une colonne qui représente l'unité du service et service est rattaché à cette unité..mais pour la liste je n'ai pas besoin de l'uf et en plus j'ai fait une colonne identifiant autoincrémentée..;
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 12:41
si avec uf=... tu as des résultats et que avec service=... tu n'as rien,moi je comprends que dans ta BDD les services ne sont pas enregistrés avec la plage d'adresse correspondante. donne moi la structure de ta table concernée stp!
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 13:28
-- Structure de la table 'servcart'
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 13:33
ok! donc tu me confirmes que tu as bien "Archives" comme service dans les enregistrements de ta table?
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 13:36
oui.....
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 13:52
Je remets le code en entier :
<?php	
		function convertionDate($dateEur){
		$rsl = explode ('/',$dateEur);
		$rsl = array_reverse($rsl);
		return implode($rsl,'-');
		}
       //gestion de la ligne selectionnée	            	
		if (isset($_POST['service']))
			{$v_service=$_POST['service'];
			}
			else
			{$v_service="";}						
	?>	
      <table width="580" height="209" border="3">  
       <form  name="rechercher" method="post" action="index.php?idpage=3">       
      <tr>
       <td height="35" colspan="5" align="center"  style="font-size:24px" >Statistiques de consommation        </td> 
      </tr>    
      
      <tr> 
       <td height="32" colspan="5" align="left">   
      <select  name="service" > 
        <option> 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>     
       </td> 
      </tr>
      
     <code> <tr>         
       <td height="30" colspan="5" align="center">      
        <label>Entre : </label>   
        <input type="text" id="datepicker" name="date_debut"  />    
        <label>Et : </label>
        <input type="text" id="datepicker1" name="date_fin"  />   		             
       </td>
      </tr>
         
      <tr>
       <th height="28" colspan="5" scope="row" align="center">
         <input  type="submit"  value="Rechercher" />  
       </th>
      </tr>
                  
      <tr>    
       <th width="52" height="36" bgcolor="#5ab9d8" scope="col">UF</th>
       <th width="159" bgcolor="#5ab9d8" scope="col">SERVICE</th>
       <th width="191"  bgcolor="#5ab9d8" scope="col">CARTOUCHE</th>
       <th width="77"  bgcolor="#5ab9d8" scope="col">DATE</th>
       <th width="63"  bgcolor="#5ab9d8" scope="col">SORTIE STOCK</th>
      </tr>
  
     <?php 	 
		 if (isset($_POST['date_debut'])and isset($_POST['date_fin'])and isset($_POST['service']))
	       {     	
			$date_debut=convertionDate($_POST['date_debut']);
			$date_fin=convertionDate($_POST['date_fin']);
			$service=$_POST['service'];
			
			echo "service: ".$service;
            echo "date debut: ".$date_debut;
            echo "date fin: ".$date_fin;

									
		 $requete2 = "SELECT uf, service,cartouche,sortie_stock,DATE_FORMAT(date_sortie,'%d/%m/%Y') AS DateTemps FROM servcart WHERE date_sortie BETWEEN '$date_debut' and '$date_fin' and service='$service' order by DateTemps  ";
	     $req2 = mysql_query($requete2) or die( mysql_error() ) ; 
			
			while ($donnees2=mysql_fetch_assoc($req2))
           { 
	?>
      <tr>
	   <td height="22"><?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           		          
		    }}
	?> 
    </form>          
  </table>
</code>
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 14:18
DateTemps c'est quoi?
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 22/09/2011 à 14:22
c'est l'alias pour date_format..si je l'enlève cela ne change rien au problème
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
22 sept. 2011 à 15:40
j'ai testé avec la variable du début de mon code
if (isset($_POST['SERVICE']))
                  {$v_service=$_POST['SERVICE'];}
                        else
                        {$v_service="";}

donc dans mon
WHERE service='$v_service'
j'ai ca dans mon echo
service: date debut: 2011-09-01date fin: 2011-09-08
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
22 sept. 2011 à 16:07
bizarre ton problème.j'ai vu ta variable $service, tu la déclare lorsque tu fais un select dans ta BDD afin de l'afficher dans la liste déroulante.or au début de ton code,tu déclare $v_service comme une variable postée.il y a deja un souci là!
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
23 sept. 2011 à 09:15
bonjour,
Peux-tu m'en dire plus...
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
23 sept. 2011 à 09:30
j'ai besoin de cette variable car si tu regardes bien dans mon select de la liste, je fais une boucle..donc je ne peux la déclarer que comme ça..ensuite j'ai changé le ceci : and isset($_POST['service']))
{
$v_service=$_POST['service']; et remis :
WHERE service=' $v_service' and et dans mes echo, j'ai ce résultat :
service: Archives date fin: 2011-09-08 date debut: 2011-09-01
mais pas de lignes...
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
23 sept. 2011 à 10:42
Salut!
j'ai bien analysé ta table et tes enregistrements,j'ai trouvé une petite incohérence:
regarde la table:
'id_service' int(5) NOT NULL AUTO_INCREMENT, 
'uf' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 
'service' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 
'sortie_stock' int(5) DEFAULT NULL, 
'cartouche' varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL, 
'date_sortie' date DEFAULT NULL, 
PRIMARY KEY ('id_service') 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=236 ;


et maintenant les enregistrements:
(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'), 
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'), 
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'), 
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),


ta table a 6 colonnes (id_service,uf,service,sortie_stock,cartouche,date_sortie) alors que tes enregistrements ont 7 colonnes (222,4517,vide, Archives,1,1720,2011-09-08) or le service dans ta table c'est la colonne "3" et dans tes enregistrements, c'est la colonne 4. bizarre!
Regarde bien,tu a dû oublié quelque chose.
0
fauve1512 Messages postés 206 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 6 décembre 2011 1
23 sept. 2011 à 10:56
tu dois être mal réveillé car je compte bien 6 colonnes service est bien troisième position

(222, '4517 ', ' Archives', 1, '1720', '2011-09-08'),
(224, '4517 ', ' Archives', 10, '4096 A 2100 2200', '2011-09-14'),
(225, '4517 ', ' Archives', 1, ' BCI 6 E 520 Cyan', '2011-09-01'),
ensuite service dans ma table est en 3 et dans mes colonnes aussi
(223, '4517 ', ' Archives', 10, '343 Couleur', '2011-09-07'),
0