Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
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 20/06/2011, 14h43   #1
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Par défaut Date avec sql server

Bonjour,

J'ai deux champs de date dans mon formulaire "Date_Entrée_Regime" et "Date_Sortie_Regime". Dans mon code php, il se présente de la forme suivant:

Code :
1
2
3
4
5
 
$date1=DateTime::createFromFormat('d/m/Y',$_POST['Date_Entree_Regime']);
$Date_Entree_Regime=date_format($date1,'Y-m-d');
$date2=DateTime::createFromFormat('d/m/Y',$_POST['Date_Sortie_Regime']);
$Date_Sortie_Regime=date_format($date2,'Y-m-d');
Le problème est que lorsque j'exécute mon code avec qu'une seule date, ça passe sans problème mais avec 2 dates dans le même formulaire, j'ai l'erreur suivante:

date_format() expects parameter 1 to be DateTime, boolean given in D:fichier.php on line 61

Merci pour votre aide
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 14h47   #2
Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2011
Messages : 36
Points : 55
Points : 55
Bonjour,

Cela signifie que le contenu d'un de tes $POST est un boolean et non une chaine représentant une date.

Vérifies les données postée par la page, si jamais le JS ne les modifies pas par exemple.
westdigit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 14h58   #3
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Salut,

C'est en fait lorsque dans le champ "Date_Sortie_Regime" que je ne mets pas de date (champ facultatif de mon formulaire) que j'ai ce message d'erreur, j'aurai du être plus précis. Cependant la sauvegarde est quand même faite. Comment faire donc pour ne plus avoir ce message ???

Merci
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 15h40   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par lemzo84 Voir le message
Salut,

C'est en fait lorsque dans le champ "Date_Sortie_Regime" que je ne mets pas de date (champ facultatif de mon formulaire) que j'ai ce message d'erreur, j'aurai du être plus précis. Cependant la sauvegarde est quand même faite. Comment faire donc pour ne plus avoir ce message ???

Merci
Bonjour,

il me semble qu'un test pourrait suffire...

Code :
1
2
 
if(isset($_POST['Date_Sortie_Regime']) && $_POST['Date_Sortie_Regime']!="")
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h07   #5
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Pourrais-tu être plus explicit, stp. Voici le code qui teste les champs

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if (array_key_exists('button',$_POST)) {
			$IDPersSocReg=$_POST['IDPersSocReg'];
			$ID_Interne=$_POST['ID_Interne'];
			$ID_Societe=$_POST['ID_Societe'];
			$ID_Regime=$_POST['ID_Regime'];
			$Statut_Regime=$_POST['Statut_Regime'];
			$Salaire=$_POST['Salaire'];
			$Taux_Occupation=$_POST['Taux_Occupation'];
			$date1=DateTime::createFromFormat('d/m/Y',$_POST['Date_Entree_Regime']);
			$Date_Entree_Regime=date_format($date1,'Y-m-d');
			$date2=DateTime::createFromFormat('d/m/Y',$_POST['Date_Sortie_Regime']);
			$Date_Sortie_Regime=date_format($date2,'Y-m-d');
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h13   #6
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Je ne connais pas bien array_key_exists, mais le fait que $_POST['Date_Sortie_Regime'] existe ne veut pas dire qu'il soit renseigné.

si tu fait un test $_POST['Date_Sortie_Regime']!="" cela te permet de savoir si le champs est vide et si ce n'est pas le cas (donc qu'il soit vide) alors $date2 prend la valeur que tu lui auras mis (le code sera peut être plus explicite):

Code :
1
2
3
4
5
6
7
8
9
 
if($_POST['Date_Sortie_Regime']!="")
{
 $date2=DateTime::createFromFormat('d/m/Y',$_POST['Date_Entree_Regime']);
}
else
{
 $date2 = NULL;
}
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h44   #7
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
J'ai mis le test pour les deux dates et je n'ai plus de message d'erreur mais le souci est que au lieu d'avoir "Null" en base de données, j'ai "1900-01-01" !!!
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h50   #8
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
A la place de NULL mets "NULL" avec les guillemets je pense que cela devrait marcher
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h57   #9
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Je l'avais déjà fait avec les "" et les ' ' mais ça ne marche pas !
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 17h01   #10
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par lemzo84 Voir le message
Je l'avais déjà fait avec les "" et les ' ' mais ça ne marche pas !
Et en modifiant ta requête, si $date2 != NULL tu fais ta requête normalement sinon tu remplace dans l'expression de ta requête $date2 par NULL.

Ou sinon au PIRE, tu mets $date2="", comme ca ca ne renseignera rien
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 17h07   #11
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Merci beaucoup, ça marche
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h30.


 
 
 
 
Partenaires

Hébergement Web