Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2977 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de calcul de dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de calcul de dates

n°702040
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 10:53:07  profilanswer
 

Salut tout le monde ! :hello:
 
J'ai un gros problème de dates :
J'ai une base de données avec des éléments datés et un moteur de recherche pour retrouver les dates de ces éléments.
 
Le but est de taper une date approximative (année seulement, en 4 chiffres) et le moteur recherche dans un intervale +/- 10 ans l'élément correspondant et en affiche les détails et la date (format AAAA-MM-JJ retranscrit à l'affichage au format français).
 
Pour l'instant j'ai ça :
 
echo"La recherche s'est effectuée entre $date01 et $date2<br>";
$query="SELECT * FROM chainon WHERE ctype='$acte' AND cnom LIKE '%$mot%' AND (cdate BETWEEN '$date01' AND '$date2') ORDER BY cnom ASC";
 
Avant d'insérer le critère de dates, le moteur marchait très bien et quand j'enlève ce critère, il remarche. Le problème viend donc bien de la date. Je teste avec une date qui doit donner au moins 10 résultats.
 
Au secours !!
 

mood
Publicité
Posté le 18-04-2004 à 10:53:07  profilanswer
 

n°702088
Beegee
Posté le 18-04-2004 à 12:30:32  profilanswer
 

base oracle ? mysql ?
 
en oracle, il faut faire un to_date('$date', '$format') pour transformer une chaîne de caractères en date :)

n°702091
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 12:33:40  profilanswer
 

en base mysql...
 
Merci de m'aider

n°702092
Beegee
Posté le 18-04-2004 à 12:35:10  profilanswer
 

bah regarde ce qu'il faut faire en mysql pour transformer une chaîne de caractères en date (sûrement to_date aussi).
 
Voici un extrait de la doc :
 
http://dev.mysql.com/doc/mysql/en/ [...] tions.html
-> STR_TO_DATE(str,format)
 
et mince, c'est dispo qu'à partir de mySql 4.1.1 ...
 
je te laisse regarder la doc, tu devrais trouver ce que tu cherches :)


Message édité par Beegee le 18-04-2004 à 12:38:57
n°702100
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 12:52:24  profilanswer
 

et j'ai le version 4.0.16 mais je vais regarder ton lien.
 
ça fait depuis ce matin 7h que je cherche la solution, mais rien ne passe (j'avais même essayer les adddate, les date(), et autres combinaisons trouvés par ci par là).
 
Bon, je zyeute... Merci encore

n°702101
POWA
Posté le 18-04-2004 à 12:53:08  profilanswer
 

tchouk tchouk music  
 
désolé.

n°702123
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 13:30:59  profilanswer
 

toujours le même problème.  
 
à priori je penses que ça doit venir du format de la date provenant du formulaire. Mais comment convertir une année en date complète ?

n°702159
Beegee
Posté le 18-04-2004 à 14:11:11  profilanswer
 

en l'écrivant '$année-01-01' peut-être ...

n°702169
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 14:23:51  profilanswer
 

j'ai déjà essayé, une fois directement dans la requête, une fois dans une variable en dehors, mais rien ne change.
 
j'ai essayé aussi les parenthèses, la concaténation, mais toujours rien !
 
Je vois vraiment pas où chercher !

n°702176
Priscilla
le désert est follement beau
Posté le 18-04-2004 à 14:32:24  profilanswer
 

Reprenons depuis le début...
 
Dans mon formulaire j'ai cette ligne qui me permet de récupérer la date approximative recherchée :
 
<br>Date clef : <input type='text' name='date1' size='8'>
 
 
Ce qui renvoie à mon traitement de la requête :
 
 
 
$date01=$date1-10;
$date2=$date1+10;
$datedeb=$date01;
$datefin=$date2;
 
echo"La recherche s'est effectuée entre $date01 et $date2<br>";
 
$query="SELECT * FROM chainon WHERE ctype='$acte' AND cnom LIKE '%$mot%' AND (cdate BETWEEN '$datedeb' AND '$datefin') ORDER BY cnom ASC";
 
$req=mysql_query ($query, $link) or die ("<br>Impossible d'obtenir un lien de la base de données :<br>".mysql_error() );

 
J'ai recopié les variables (date,datedeb,etc...) pour décomposer au maximum les articulations et essayer de trouver d'où vient le problème.
 
Mais je ne vois vraiment pas d'où ça peut venir ! :cry:

mood
Publicité
Posté le 18-04-2004 à 14:32:24  profilanswer
 

n°703794
T509
$job-&gt;GetJob(now)
Posté le 20-04-2004 à 14:06:41  profilanswer
 

ctype='$acte'
 
En écrivant comme cela, tu recherches la chaine "$acte" et non pas la valeur de ta variable
 
"... ctype='".$acte."' ..."
 


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°703839
knemo
Posté le 20-04-2004 à 14:37:22  profilanswer
 

question : c'est quoi le format de ta date en mysql ?
 
sinon peut afficher la requête avant de l'executer genre :  
 
echo"La recherche s'est effectuée entre $date01 et $date2<br>";  
 
$query="SELECT * FROM chainon WHERE ctype='$acte' AND cnom LIKE '%$mot%' AND (cdate BETWEEN '$datedeb' AND '$datefin') ORDER BY cnom ASC";  
 
$req=mysql_query ($query, $link) or die ("<br>Impossible d'obtenir un lien de la base de données :<br>".mysql_error() );  
 
 
PUIS nous faire un copier coller de cette requête


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de calcul de dates

 

Sujets relatifs
Problème ACCESS et Recorsource[eclipse] probleme de visualisation de page JSP
Problème de pageProbleme de transfert de chaîne de caractere vers BDD.HELP!!!!
[WEB FLASH ] Probléme plubication site flashProblème avec un menu dynamique
[C] problème avec la fonction write sur un port série probleme pour imprimer une fiche
Eternel problème: Centrage dynamique de blocsProbleme mineur avec un programme que je ne sais résoudre..merci
Plus de sujets relatifs à : Problème de calcul de dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR