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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparaison de dates sous Mysql depuis PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison de dates sous Mysql depuis PHP

n°1089130
pops1
Posté le 19-05-2005 à 14:12:03  profilanswer
 

Voila dans une table j'ai tout un tas de créneau correspondant a un planning. Dans cette table il y a un champs nommé "AAAA-MM-JJ" qui correspond a la date de ce créneau. Dans une autre table appelée jour il y a aussi un champ "AAAA-MM-JJ" et un champs avec le numéro de planning. Lorsque je supprime un planning cela doit aussi supprimer les créneaux en rapport avec ce planning. Sauf que dans la table créneau il n'y a pas de champs avec le numéro de planning, je dois donc passer par la table jour. Voila la manipulation que je fais pour tenter de tout effacer ce qui concerne a un planning. Je rappelle que je fais dans une page php.
 

Code :
  1. $sql_cren = "SELECT * FROM jour WHERE NumeroPlanning =".$Num;
  2.         $result_cren = mysql_query($sql_cren) or die("Query failed : " . mysql_error());
  3.         while($enr_cren = mysql_fetch_assoc($result_cren))
  4.         {
  5.             echo ' <br>Jour : '.$enr_cren['AAAA-MM-JJ'];
  6.             $sql = "SELECT * FROM creneau WHERE 'AAAA-MM-JJ'=".$enr_cren['AAAA-MM-JJ'];
  7.            
  8.             //$sql = "DELETE FROM creneau WHERE `AAAA-MM-JJ` = ".$enr_cren['AAAA-MM-JJ']."";
  9.             $rSql = mysql_query($sql) or die("Query failed : " . mysql_error());
  10.             $enrBis = mysql_fetch_assoc($rSql);
  11.             echo ' <br>Creneau : '.$enrBis['AAAA-MM-JJ'];
  12.            
  13.            
  14.         }


 le premier echo m'affiche par exemple " Jour : 2005-06-17" et je suis sur que dans la table creneau il y a au moins une ligne dont le champ "AAAA-MM-JJ" a exactement la meme valeur (j'ai vérifié depuis phpMyAdmin). Et pourtant le second echo ne m'affiche que " Creneau : " j'en déduis donc qu'il n'a pas trouvé de date dans la table creneau égale a la date de la table jour.(je précise que les deux champs sont de type date) :pt1cable:  
 
Et je ne comprends pas Pourquoi !!!
 
Si qqn pouvait m'aider a m'enlever cette épine qui n'a pas l'air bien grosse mais qui fait bien mal ce serait vraiment cool  
 
Merci d'avance  
 
Hed


Message édité par pops1 le 19-05-2005 à 14:15:40
mood
Publicité
Posté le 19-05-2005 à 14:12:03  profilanswer
 

n°1089138
gizmo
Posté le 19-05-2005 à 14:17:46  profilanswer
 

Citation :

Voila dans une table j'ai tout un tas de créneau correspondant a un planning. Dans cette table il y a un champs nommé "AAAA-MM-JJ" qui correspond a la date de ce créneau.


 
[:totoz]

n°1089143
skeye
Posté le 19-05-2005 à 14:18:49  profilanswer
 

[:ktulu]
Un champ de type date c'était trop facile?[:moule_bite]


Message édité par skeye le 19-05-2005 à 14:19:03

---------------
Can't buy what I want because it's free -
n°1089147
GaSPaRD77
Posté le 19-05-2005 à 14:19:40  profilanswer
 

Code :
  1. $sql = "SELECT * FROM jour j, creneau c WHERE j.AAAA-MM-JJ = c.AAAA-MM-JJ AND j.NumeroPlanning = '".$Num."'" ;


n°1089148
pops1
Posté le 19-05-2005 à 14:20:08  profilanswer
 

ouais je sais que le nom de champs est mal choisi, mais j'ai pris la base comme ca et ca m'ennui de changer le nom de ce champs car il intervient a pleins d'endroits dans différentes pages. Donc si je pouvais eviter de tous les renommer dans chaque page ca m'arrangerais assez.  
 
Mais tu fais bien de le noter

n°1089157
pops1
Posté le 19-05-2005 à 14:25:27  profilanswer
 

ben merci bien gaspard ca l'air de fonctionner  

n°1089199
pops1
Posté le 19-05-2005 à 14:50:13  profilanswer
 

encore une petite question, si maintenant je veux faire un DELETE a la place de mon SELECT.  
Ca ne marche évidemment pas car apparemment il n'aime pas trop faire des DELETE sur 2 table différentes dans la meme requete. Alors j'ai pensé me servir de USING mais ca marche pas non plus. ca me une erreur :
 
voila ma requete transformée :

Code :
  1. $sql = "DELETE FROM creneau c USING jour j WHERE jour.`AAAA-MM-JJ` = creneau.`AAAA-MM-JJ` AND jour.NumeroPlanning = ".$Num." " ;


 
et voila l'erreur qui en découle : "Query failed : You have an error in your SQL syntax near 'c USING jour j WHERE jour.`AAAA-MM-JJ` = creneau.`AAAA-MM-JJ` AND jour.NumeroPla' at line 1"
 
désolé pour tous ces problèmes que je pose.

n°1089202
pops1
Posté le 19-05-2005 à 14:53:21  profilanswer
 

en fait je crois que j'ai trouvé, dans la version "néandertalienne" de Mysql que j'utilise je ne suis pas sur que je puisse utiliser plusieurs tables avec un DELETE donc mon erreur doit venir de la  

n°1089208
pops1
Posté le 19-05-2005 à 14:57:31  profilanswer
 

donc en fait la solution que tu me proposais gaspard va tres bien pour le SELECT mais pour le DELETE il faut que je trouve autre chose.

n°1089234
pops1
Posté le 19-05-2005 à 15:09:55  profilanswer
 

toujours pas d'idées pour mon DELETE ??

mood
Publicité
Posté le 19-05-2005 à 15:09:55  profilanswer
 

n°1089255
robbyone
Non pas !
Posté le 19-05-2005 à 15:15:46  profilanswer
 

Tu poses d'abord ton SELECT pour récupérer l'ensemble des jours à supprimer.
Puis tu lances deux DELETE, un pour chaque table !
 
-: Toujours penser à faire simple ! :-

n°1089270
pops1
Posté le 19-05-2005 à 15:23:15  profilanswer
 

ouais je suis d'accord ca revient a faire exécuter le code qui est dans mon premier message. Mais le problème c'est qu'une fois que j'ai récupéré la date lors de mon premier select quand je l'affiche elle est correcte mais quand je la compare a une date identique d'une autre table et bien ca fait comme si elles étaient différentes. Et je ne comprends absolument pas pourquoi !!

n°1089315
robbyone
Non pas !
Posté le 19-05-2005 à 15:44:09  profilanswer
 

Dans mes scripts, tout fonctionne (comparaison, égalité, etc ...)
Il faut vérifier le format de tes dates dans le code php et dans ta bdd
 
Format perso Php : YYYY-MM-DD HH:MM:SS
Format perso Bdd : timestamp

n°1089376
pops1
Posté le 19-05-2005 à 15:57:26  profilanswer
 

ben moi en ce qui concerne la base de données c'est du type DATE. Si je sotck la valeur de mon champs avec PHP est ce que ca va changer le type de la données.  
J'entends par la que si dans ma bdd mon champs est de type DATE, lorsque je formule ma requête depuis PHP et que je stocke la valeur de cette donnée, est-ce que son type va changer ? Pourtant quand j'affiche cette donnée a l'écran avec un echo elle conserve le meme format que dans ma BDD  
 
Donc je ne vois vraiment pas de quoi cela peut venir


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparaison de dates sous Mysql depuis PHP

 

Sujets relatifs
VB.NET, MYSQL, ACCESSComparaison approximative de deux chaines.
Problème PHP IISMysql 5.0.x et Debian
[PHP / Sendmail] probleme lors de l'envoi d'un mail[PHP] Modif d'un document word : ça marche !
Experienced PHP-programmersMySQL : sauvegarder tout !
Faire du pattern matching et des expressions reguliers sous MySQL?MySQL ? PostgreSQL ? Que chosir pour une grosse base ?
Plus de sujets relatifs à : Comparaison de dates sous Mysql depuis PHP


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