IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Date avec sql server [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    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 : 62
    Points
    62
    Par défaut
    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.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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

  4. #4
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['Date_Sortie_Regime']) && $_POST['Date_Sortie_Regime']!="")
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    Pourrais-tu être plus explicit, stp. Voici le code qui teste les champs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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');

  6. #6
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    }
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    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" !!!

  8. #8
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    A la place de NULL mets "NULL" avec les guillemets je pense que cela devrait marcher
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    Je l'avais déjà fait avec les "" et les ' ' mais ça ne marche pas !

  10. #10
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    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
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 210
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup, ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formats de date avec sql server
    Par OWickerman dans le forum Développement
    Réponses: 1
    Dernier message: 24/03/2009, 15h19
  2. Problème de date avec SQL Server
    Par gide_x dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 22/07/2007, 11h37
  3. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  4. Date avec SQL Server
    Par RodEpsi dans le forum WinDev
    Réponses: 5
    Dernier message: 12/05/2006, 17h10
  5. Gérer les dates avec SQL Server 2000
    Par saby dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/01/2006, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo