NiTrOuS Posté(e) le 25 octobre 2005 Partager Posté(e) le 25 octobre 2005 Salut à tous, j'ai un petit probleme en PHP. J'ai une base de données postgres avec une table facture_client. Dans cette table, j'ai un champ date_now de type text. Et dans ce champ, j'aimerais enregistrer la date actuelle. Voici mon code: <?php include('connect.php'); if(@isset($_GET['hiddenField'])) { $date_now = date("d-m-Y"); $query="INSERT INTO facture_client (id_client,id_voiture,date_now,montant_facture_client) VALUES ('$_SESSION[id_client]','$_GET[hiddenField]',$date_now,$prix)"; $result=@pg_exec($cnx,$query); if(!$result) { echo("Erreur, la requête n'a pas pu aboutir"); } else { echo("La commande est passée"); } } ?> Voilà, si j'affiche $date avec un echo, elle s'affiche parfaitement. Par contre, quand je vais voir dans ma base de données, la date s'enregistre de cette facon: -1990 Vous pouvez m'aider svp ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 25 octobre 2005 Partager Posté(e) le 25 octobre 2005 Si ce champ est du type text dans ta base, il faut que tu le convertisses en texte avant de le passer à la base. Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 25 octobre 2005 Auteur Partager Posté(e) le 25 octobre 2005 Et comment peut-on faire cela ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 25 octobre 2005 Partager Posté(e) le 25 octobre 2005 Lorsque tu fais un echo directement dans ta page de la date et que tu dis qu'elle est ok, à quoi ressemble-t-elle ? Dans une entrée TEXT d'une BD Postgres est-ce qu'il y a des caractères (ex.: -,.!"@£?&*#|\±¢¤¬¦²³¼½) qui ne sont pas valides ? Peut-être que la valeur retourné par date("d-m-Y") contient ces caractères non valides ? Moi j'utilise des champs VARCHAR en MySQL pour les dates. Lien vers le commentaire Partager sur d’autres sites More sharing options...
deor Posté(e) le 25 octobre 2005 Partager Posté(e) le 25 octobre 2005 Pas du tout, c'est le bug de l'an 2000, c'est tout Bon, sinon, quand j'ai des soucis de ce type, tout simplement, je fais une requête SQL SELECTsur les champs de date depuis un script PHP quelconque, histoire de voir comment ils y sont stockés et je formate de cette manière-là en INSERT. Pour avoir un champ date rempli: fait un INSERT avec la valeur CURRENT_DATE. Certaines bases demandent un TIMESTAMP Unix, aussi, la doc sur Postgres devrait pas mal éclairer ta lanterne. si j'affiche $date avec un echo De quelle $date tu parles? Et puis correctement, ça veut dire quoi? T'aurais un exemple? Sinon, je me rappelle que pour une base (je ne sais plus laquelle), il fallait lui balancer la date sous ce format: "#2005-10-25" . Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 25 octobre 2005 Auteur Partager Posté(e) le 25 octobre 2005 Yes ca marche, j'ai mis mon champ en type DATE et j'ai ajouté la CURENT_DATE et ca marche sans probleme Merci beaucoup Lien vers le commentaire Partager sur d’autres sites More sharing options...
seishiro Posté(e) le 26 octobre 2005 Partager Posté(e) le 26 octobre 2005 NiTrOuS c'est exactement ce que je voulais te proposer c'est a dire d'utiliser le type DATE pour ton champ. L'avantage est que les manipulation de date et heure sont rendu plus facile de plus tu t'évite des conversion hasardeuse.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
xhark Posté(e) le 26 octobre 2005 Partager Posté(e) le 26 octobre 2005 ça beugue car si on est le 01/01/2005 : $date_now = "01-01-2005" et toi dans ta base il doit s'enregistrer le tout mais ton champ n'est pas assez grand et du coup tu as que les 5 derniers caractères : "-2005" donc passe ton champ en type date : Même si MySQL essaye d'interpreter les valeurs sous différents formats, il s'attend toujours à ce que l'année soit dans la partie gauche de la valeur. Les dates doivent êtres données sous la forme année-mois-jour (exemple : 98-09-04), au lieu de mois-jour-année ou jour-mois-année qui sont très utilisés ailleurs (comme 09-04-98 ou '04-09-98'). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.