adapter une date pour pouvoir l'utiliser dans un requête

adapter une date pour pouvoir l'utiliser dans un requête - PHP - Programmation

Marsh Posté le 01-06-2010 à 08:24:16    

Bonjour à tous ;
j'ai vraiment besoin de vos aides mes chers amis ; voilà j'exploite une base accès et je devrai faire une requête en faisant un critère sur cette date . sauf le problème c'est qu'elle est  de format (visuellement sous accès ) on le voit sous se format : 13-mai-10  mais quand je crée un programme simple qui me permet d'afficher la date le résultat m'affiche : 1998-02-26 00:00:00
donc forcément dans la requête ; on doit changer la date qu'on entre sous ce format : un exemple de code que j'ai dû mal à faire pour que çà marche :
en fait le programme est réalisé pour affciher les personnes selon une date de naissance précise ; donc au départ je pensais mettre un formulaire et après on récupère le jour le mois et l'année  

Code :
  1. <?php
  2.     //connection au serveur:
  3.     $cnx = odbc_connect( "DSN_personnes", "root", "" ) or die("Impossible de se connecter à la bas de donn&eacutee" ) ;
  4.    
  5.     //1998-02-26 00:00:00
  6.    
  7.    
  8.     // on suppose que l'utilisateur a entré çà  : 13 mai 2010
  9.     $date = "13-mai-10 ";
  10.    
  11. // il faut le transformer au format date  
  12.     $time = strtotime( $date );
  13.    
  14.     $myDate = date( 'Y-m-d', $time ); // c'est ici le problème comment le transformer sous format 1998-02-26 00:00:00
  15.     //requête SQL:
  16.     $sql = "SELECT * FROM personnes where Datenaissance like '$myDate' " ;
  17.     //ex&eacutecution de la requête:
  18.     $requete = odbc_do($cnx, $sql) ;
  19.     //affichage des donn&eacutees:
  20.     while( $result = odbc_fetch_object( $requete ) )
  21.     {
  22.        echo("<div align=\"center\">".$result->nom." ".$result->prenom.$result->Datenaissance." <a href=\"modification3.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n" ) ;
  23.     }
  24.     odbc_close( $cnx); // ferme la connexion
  25.   ?>


 
quand j'execute ce code la page est blanche  :cry:  
 
je vous remrcie d'avance pour vos aides  :hello:

Reply

Marsh Posté le 01-06-2010 à 08:24:16   

Reply

Marsh Posté le 01-06-2010 à 10:00:08    

en lisant la doc de date ;), et pour la comparaison c'est avec =


Message édité par stealth35 le 01-06-2010 à 10:00:35
Reply

Marsh Posté le 01-06-2010 à 10:01:40    

Sous Access les dates doivent s'écrire avec un dièse (#) devant et un dièse derrière. De plus les dates ont un format qui dépend des options régionales de Windows. Pour moi, il fallait que j'utilise le format américain : #mm/dd/yyyy h:n:s#

Reply

Marsh Posté le 01-06-2010 à 10:05:43    

c'est possible, tu formates ta chaine comme tu le souhaite

Reply

Marsh Posté le 01-06-2010 à 13:44:54    

j'essai de suivre ce lien et comme vous l'avez dit qu'il faut adapter au format US :
http://www.developpez.net/forums/d [...] ql-access/
 
et j'ai refait le code mais çà ne marche pas :
 
 $sql = "SELECT * FROM personnes where Datenaissance  =  #"&Format(05-15-2010, "mm/dd/yyyy" )& # " ;
     
        //#" & format(date1,  "dd/mm/yyyy" ) & "
     
                                                       
 
    erreur :
Fatal error: Call to undefined function Format() in C:\wamp\www\FichierTransfert\personnes1.php  on line 96

Reply

Marsh Posté le 01-06-2010 à 13:47:58    

normale c'est du VB ca ...
de plus dans ton code strtotime("13-mai-10');  ca ne marche pas avec les nom francais


Message édité par stealth35 le 01-06-2010 à 13:52:17
Reply

Marsh Posté le 02-06-2010 à 10:58:50    

Citation :

$sql = "SELECT * FROM personnes where Datenaissance  =  #"&Format(05-15-2010, "mm/dd/yyyy" )& # " ;

Attention aux guillemets.
Et je ne suis pas sûr que Format passe car ce n'est pas une fonction PHP, ni SQL, juste une fonction Access. Essayer plutôt :

$sql = "SELECT * FROM personnes where Datenaissance  =  #05/15/2010 01:01:01#";

Reply

Marsh Posté le 02-06-2010 à 21:47:06    

Bonjour ;
 
j'ai essayé le code que tu fournis olivthill mais rien ne marche ;
toujours une page blanche . justement Format n'est pas reconnu , il affiche une message d'erreur  

Reply

Marsh Posté le 02-06-2010 à 22:14:05    

en fait ; c'est le tiré (-) sur la date qui pose problème :
en essayant cette requête et il marche :
 
<code>
 $sql = "SELECT * FROM personnes where Datenaissance = #31-07-1982# ";
</code>
mais il me reste la partie délicate ; comment je vais faire pour mettre la date que l'utilisateur entre sous ce format .
 
je sais que c'est à partir d'un $_GET
 
exemple :
 
$date = $_GET['dat'];
$mois = $_GET['mois'];
$annee =$_GET['an'];
 
mais après comment le convertir à ce que le format soit au même que  
#31-07-1982#  dans la requête

Reply

Marsh Posté le 03-06-2010 à 11:02:57    

c'est

Code :
  1. SELECT * FROM personnes WHERE Datenaissance = '#31-07-1982#'
 

avec des quotes autour de la date


Message édité par stealth35 le 03-06-2010 à 11:03:07
Reply

Marsh Posté le 03-06-2010 à 11:02:57   

Reply

Marsh Posté le 07-06-2010 à 11:19:03    

en fait j'ai mis ce que stealth35 m'avais indiqué  et çà marche :
 

Code :
  1. $recherhe = "31-10-1997";
  2.             $limite = "27-02-1998";
  3. $sql = "SELECT Num,Codeclient,DenominationClient,Dateeffet,Typedepolice,CodeCompagnie FROM Police where Dateeffet between  #$recherhe#  and  #$limite#
  4.     GROUP BY CodeCompagnie,Typedepolice,Num,Codeclient,DenominationClient,Dateeffet";

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed