begin process at 2012 05 30 19:51:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Interval de date, problème récupération des données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Interval de date, problème récupération des données

jeudi 11 mai 2006 à 14:15:11 | Interval de date, problème récupération des données

murrigane

Bonjour,

Bon ce n'est pas vraiment un "Au Secours je vais me jeter par la fenêtre" le thème exacte de mon message mais je trouvais pas de catégorie approprié.

J'ai un petit soucis avec un interval de date dans une requête. J'ai créé une boutique en ligne et pour suivre les commandes, les gérer, ect.. J'ai créé un Back Office permettant de récapituler les commandes en faisant une recherche sur des dates, sur le statut, et également sur un numéro de commande précis.
Pour les dates j'ai créé un formulaire de ce type :
du "01/05/2006" au "31/05/2006" "Envoyer"
J'ai géré et modifié le format des dates pour les convertire au format enregistré dans MySql, pas de problème de ce côté là. Par contre, ce qui m'ennui beaucoup c'est que si je lance une recherche sur les mêmes dates que citées plus haut : du 01/02/2006 au 31/05/2006, j'ai en réponse toute les commandes du mois de mai excepté celle du 31/05/2006. Si je veux les voir je dois faire comme recherche du 01/05/2006 au 01/06/2006 ce qui peut paraitre logique d'une certaine manière, mais pas pour les utilisateurs ...
J'ai le même soucis si je veux des commandes par exemple du : 10/05/2006, dans la recherche je dois mettre 11/05/2006.
Comment régler ce problème ?

J'ai d'abord tenté d'écrire ma requête comme ceci :
$q = 'SELECT * FROM order WHERE DATE BETWEEN "'.$date1.'" AND "'.$date2.'" ';
Mais cela n'a pas fonctionné alors j'ai essayé de l'écrire de la manière suivante :
$q = 'SELECT * FROM order WHERE DATE >= "'.$date1.'" AND DATE <= "'.$date2.'" ';
Sans plus de succès, d'ailleurs j'imagine que la première requête que j'avais fait était juste une simplification de la seconde.

Merci d'avance pour votre aide !
jeudi 11 mai 2006 à 15:30:58 | Re : Interval de date, problème récupération des données

Teclis01

quel est le type de $date1 ou $date2 quand tu fais ta requete ?

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

jeudi 11 mai 2006 à 15:46:17 | Re : Interval de date, problème récupération des données

Teclis01

bon disons que ce sont des strings et bien tu auras plusieurs choses a faire dont :
(je vais surement en oublier alors nhesite pas a en rajouter)
partons de la base que ta date est $date="10/06/2006"
1/tester si c'est le dernier jour du mois

tu peux reprendre ce modele...
function annee_bisextile($annee){
  $result=false;
  if(($annee%4==0 && $annee%100 != 0) || ($annee %1000==0)){
    $result=true;
  }
  return $result;   
}
function jour_annee($annee){
  if(annee_bisextile($annee)==true){
    $fevrier=29;
  }
  else{
    $fevrier=28;
  }

  $months=array(1 => 31,
                2 => $fevrier,
                3 => 31,
                4 => 30,
                5 => 31,
                6 => 30,
                7 => 31,
                8 => 31,
                9 => 30,
                10 => 31,
                11 => 30,
                12 => 31,);
  return $months;
}

tu compareras donc le mois et le jour.
Pour decomposer ta date afin de comparer=>explode
$date_exploded=explode('/',$date);
$jour=$date_exploded[0];
$mois=$date_exploded[1];
$annee=$date_exploded[2];

je te laisse concevoir la suite...

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

jeudi 11 mai 2006 à 16:00:44 | Re : Interval de date, problème récupération des données

Teclis01

Réponse acceptée !
Sinon je viens de penser a un truc beaucoup plus simple ...
on garde la partie sur l explode de la date et on utilise la fonction mktime
après ca devient très simple
il suffit dajouter 1 a $jour et c'est bon
pour la donc c'est ici:
[url]http://fr2.php.net/manual/fr/function.mktime.php[/url]

ca sera beaucoup plus rapide et bien moins fastidieux

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

jeudi 11 mai 2006 à 16:14:14 | Re : Interval de date, problème récupération des données

murrigane

okay, je vais voir !

Merci
jeudi 11 mai 2006 à 16:25:05 | Re : Interval de date, problème récupération des données

chamallow

Moi j'ai déjà eu ce problème et ça venait des guillemets et cotes (je sais jamais comment ca s'écrit) après le between.
D'ailleurs ça serait pas le même style de problème pour toi??
"SELECT * FROM order WHERE DATE BETWEEN "'.$date1.'" AND "'.$date2.'" "

Comme ça non?C'est surement pas ça mais bon lol
jeudi 11 mai 2006 à 16:30:10 | Re : Interval de date, problème récupération des données

murrigane

Merci Chamallow d'être venue te pencher sur la question ... Mais effectivement ça n'était pas ça  !

Il fallait effectivement reprendre les dates de recherches et repasser un mktime() dessus. Maintenant c'est bon mon problème est réglé.

C'est space quand même qu'il faille faire prendre un jour de plus à la date pour que celle qui sont précisées soient bien pris en compte .. Enfin l'essentiel c'est que cela fonctionne désormais.

Merci beaucoup Teclis01
jeudi 11 mai 2006 à 16:32:53 | Re : Interval de date, problème récupération des données

Teclis01

par contre une question se pose a moi ...ok il prend pas la derniere date ... mais est ce que BETWEEN inclue la premiere date ..?tu pourrais tester stp ?
*est curieux*
Merci

-------------------------------------------------------------------------------------------------------
          Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

jeudi 11 mai 2006 à 16:35:30 | Re : Interval de date, problème récupération des données

murrigane

Ah non mince .... J'avais pas vu !!

J'ai toujours un souci en fait, maintenant quand je fais une recherche de date, il prends ma date de fin sur le mois de juin ! A chaque fois le script rajoute 1 au mois en cours.

Donc dans une recherche il cherche bien les dates de commande, mais concrétement du 01/05/2006 au 01/06/2006
et si je fais une recherche sur les commandes du 10/05/2006 il me ressort : 10/05/2006 au 10/06/2006

Bon je vais re regarder !
jeudi 11 mai 2006 à 16:40:55 | Re : Interval de date, problème récupération des données

murrigane

Apparement non, Between ne prends pas la première date, quand j'aurais résolut le hic de la date de fin, je devrais m'occuper de celle du debut...

Autant je suis arrivée à gérer les dates pour l'affichage direct dans les deux champs texte avec date de debut de mois et date de fin de mois (avec respect du nombre de jour) autant, là pour lancer les recherches je patauge !!

Liens que tu m'avais donnée, je m'en était servie pour faire l'affichage des dates direct dans le formulaire, mais j'ai du mal a reprendre pour la recherche.

1 2

Cette discussion est classée dans : problème, date, recherche, dates, commandes


Répondre à ce message

Sujets en rapport avec ce message

problème lors de l'enregistrement des dates dans la base de données [ par zsafae ] bonjour,je dispose d'une page ou je saisie la date du jour et une autre date(date du système:que je récupère grace a la fonction date),bref,mon problè recherche entre deux dates [ par MORVAL ] Bonjour à tous,Je souhaite éffectuer une recherche entre deux dates reprises dans le même champ (date) d'une table.Et ce pour obtenir les informations Recherche entre deux date [ par Djibril76 ] Bonjour à tous, Excusez moi d'avance pour ma question sans doute nulle, mais je suis totalement néophyte php. Voilà, dans mon site (le premier!), je s Problème sur moteur de recherche [ par VestaX ] Salut à tous !! Voilà, j'ai un petit problème sur un moteur de recherche. En fait j'ai une page de résultats de recherche, et une page index avec for Calcul de dates avec PHP [ par Renald689 ] Bonjour, Pour un site web que je suis en train de développer, j'ai besoin de lister toutes les dates comprises dans une période. Sur la première pag Problème de requête avec jointure [ par moldau78 ] Bonjour, Ce petit moteur de recherche fonctionne bien mais il ne m'affiche que les deux premiers champs (nomcompo et oeuvre) et pas professeur.nom dan Enumération des dates d'une période [ par gregou9 ] Bonjour, J'ai une fonction php pour énumerer les dates d'une période mais elle me renvoit pas les bonnes dates (les années sont decalées genre 2020). Recherche par date de disponibilité (ex: demande de reservation) [ par prigenty ] Bonjour, Voici le souci: j'ai un site de locations de vacances, et je souhaite ajouter une recherche par date dans mon formulaire de recherche. Je tr Problème pour convertir une date numérique au format lettre [ par BenamourJr ] Bonjour, Je fais face à un problème que j'ai du mal à comprendre, c'est pourquoi je viens vers vous en espérant que vous puissiez m'éclairer un peu. Affichage de deux tables mysql [ par esadiffusion ] Bonjour a tous! Je suis actuellement en train de construire un site pour une discomobile, j'ai presque fini mais je bute sur un problème depuis déjà 2


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales