Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2011, 20h10   #1
Invité de passage
 
Homme Vainui TUAIVA
Développeur informatique
Inscription : novembre 2011
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Vainui TUAIVA
Localisation : Polynésie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : novembre 2011
Messages : 19
Points : 1
Points : 1
Par défaut Problème d'enregistrement des dates

Bonjour à tous!

Contexte:

J'ai un formulaire organiser dans un tableau où j'ai un champ date qui a pour valeur la date du jour.

PHP 5.3.5, MySQL 5.5.8, Apache 2.2.17.

Voici mon problème:
Je n'arrive pas à enregistrer la date dans ma bdd en mysql. Il m'affiche 0 à la place. Pourtant mon champ date est de type date.

Code :
<input type="text" name="datesaisie" value="<?php echo date('d/m/Y');?>">
ensuite je récupère par la méthode POST:

Code :
$datesaisie=$_POST['datesaisie'];
et je fais ma requête d'insertion:
Code :
1
2
$sql = "INSERT INTO t_recette(dateSaisie) values ('$datesaisie')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Quelqu’un pourrait m'aider? Merci par avance.
vainuiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 10h21   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
En SQL, les dates sont au format 'aaaa-mm-jj', il faut donc convertir au bon format :
- soit dans le code PHP ;
- soit grâce à la fonction STR_TO_DATE de MySQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 18h49   #3
Invité de passage
 
Homme Vainui TUAIVA
Développeur informatique
Inscription : novembre 2011
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Vainui TUAIVA
Localisation : Polynésie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : novembre 2011
Messages : 19
Points : 1
Points : 1
Peux-tu détaillé avec un exemple?

J'ai essayé de plusieurs façons:
Code :
1
2
 
$sql = "INSERT INTO t_recette(dateSaisie) values (strtodate($datesaisie))";
Code :
1
2
 
$sql = "INSERT INTO t_recette(dateSaisie) values (strtodate('$datesaisie'))";
Merci.
vainuiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 19h31   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Il faut lire le lien de CinePhil sur str_to_date().
Code :
sql = "INSERT INTO t_recette(dateSaisie) VALUES (STR_TO_DATE('$datesaisie', '%d/%m/%Y'))"
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 20h42   #5
Invité de passage
 
Homme Vainui TUAIVA
Développeur informatique
Inscription : novembre 2011
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Vainui TUAIVA
Localisation : Polynésie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : novembre 2011
Messages : 19
Points : 1
Points : 1
J'utilise cette fonction pour un affichage et c'est ok!
En ce qui concerne l'insertion dans ma bdd il m'affiche "0000-00-00"
ensuite il faut que je puisse faire un tri c'est à dire:

SELECT IdRecette, Recette
FROM t_recette
WHERE dateSaisie=?

Je rencontre beaucoup de difficultés en ce qui concerne les dates.

Dans ma bdd en mysql mon champ "dateSaisie" est de type DATE donc quand je réalise une insertion il m'affiche bien dans ma bdd 2011-12-01
mais lorsque je fais un tri dans la clause "WHERE" d'un SELECT par exemple lorsque je mets dateSaisie=curdate() ou encore dateSaisie=now() il m'affiche les résultats de n'importe quand.

Il ne me reste que ce problème et mon application sera enfin close.

S'il vous plaît un p'tit coup de pouce encore! Merci.
vainuiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 21h10   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Tu peux aussi formater ta date en PHP avant de la présenter à MySQL comme ceci :
Code php :
$mysqlDate = DateTime::createFromFormat('d/m/Y', $date)->format('Y-m-d');
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h32.


 
 
 
 
Partenaires

Hébergement Web