Falcon074
Messages postés23Date d'inscriptionjeudi 23 août 2007StatutMembreDernière intervention12 avril 2008
-
9 déc. 2007 à 23:25
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
13 déc. 2007 à 12:09
Bonjour,
Je cherche un code qui me permet de chercher des enregistrements dans une base de données qui sont compris entre tel date et tel date dont le format est de la forme suivante: ex: 09/12/2007 car ce code:
<?php
$dated=$_POST['dated']; // La date de début saisie dans la variable $dated.
$datef=$_POST['datef']; // La date de fin saisie dans la variable $datef.
$reponse=mysql_query("SELECT * FROM memo_cmd.commande where datelivr>='$dated' && datelivr<='$datef' ORDER BY datelivr");// On récupère toutes les données concernant les commandes glabales comprise entre la date de début et celle de fin.
while ($donnees= mysql_fetch_array($reponse))// Code permettant de stocker les données concernant le critère de recherche voulue issue de la base de donnée memo_cmd.commande dans les variables suivantes:
?>
Ne fonctionne pas car il m'affiche des commandes ne correspondant pas au date de début ou de fin voulu.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 10 déc. 2007 à 01:53
Salut,
Dans quel format est ta date dans ta base de données ?
Si elle est enregistrée sous la forme jj/mm/aaaa tu ne pourras pas comparer directement. Et tu vas même devoir te cruser les méninges.
Si elle est sous la forme aaa/mm/jj tu peux comparer directement avec BETWEEN (qui est plus efficace que deux comparaisons <= et >= ).
La meilleur solution à mes yeux est de stocker la date sous forme de timestamp unix dans la base (un entier : colonne de type INT). Il suffit de convertir en timestamp les dates du formulaire avec mktime() et de faire une comparaison avec BETWEEN dans la requête sql
Peut tu m'expliquer comment mettre ma date qui effectivement est enregistrée sous cette forme j/m/année dont le type est un char en format timestamp car là je galère !
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 10 déc. 2007 à 22:44
Ben ça dépend si t'as des enregistrements dans ta table ou si t'en es qu'à développer...
Si t'as pas d'enregistrement :
change le type de ton champ date, et mets le en INT.
Pour y stocker la date sous forme d'un timestamp unix, il te suffira d'y enregistrer la valeur de time() (en php) ou UNIX_TIMESTAMP() (en SQL)
Falcon074
Messages postés23Date d'inscriptionjeudi 23 août 2007StatutMembreDernière intervention12 avril 2008 10 déc. 2007 à 23:12
J'ai déja des enregistrements de fait dans ma base pourquoi ? Sinon pour l'enregistrement de ma date faut que je la mette à ce format : 0000-00-00 pour l'enregistrer au format unix_timestamp ?
Falcon074.
Vous n’avez pas trouvé la réponse que vous recherchez ?