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 :

insertion date avec PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut insertion date avec PDO
    Bonsoir,

    j'ai un souci pour insérer une date alors que c'est bon pour les autres champs ; voici le code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql='INSERT into `CONSULTATION` (id_praticien, id_patient,id_consultation_type, date_consultation) VALUES (:id_praticien,:id_patient,:id_consultation_type,:date_consultation)';
    $prep = $connexion->prepare($sql);
    echo "date:".$_POST['date_consultation'];
     
    //Associer des valeurs aux place holders
    $prep->bindValue(':id_praticien', $id_praticien, PDO::PARAM_INT);
    $prep->bindValue(':id_patient', $id_patient, PDO::PARAM_INT);
    $prep->bindValue(':id_consultation_type', $id_consultation_type, PDO::PARAM_INT);
    $prep->bindValue(':date_consultation',$_POST['date_consultation'], PDO::PARAM_STR);
     
    $prep->execute();
    et la date s'affiche correctement. Donc comment faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que tu n'as pas mis ta date au format aaaa-mm-dd.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Ton hypothèse est bonne et je viens de me rendre compte que la fonction que j'utilise est buguée ; j'arrive à contourner le bug par contre, l'affichage en fr de datepicker ne marche pas (et avant, ça marchait...) ; voici le code (c'est pas au même endroit car j'ai une autre saisie de date et le problème est le même) :
    patient.php
    Code php+js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     <head><link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
     
      <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
     
      <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
     
      <link rel="stylesheet" href="/resources/demos/style.css">
     
      <script>
     
      $(function() {
     
        $( "#datepickerp" ).datepicker({
     
          changeMonth: true,
     
          changeYear: true
     
        });
     
      });
     
      </script>	
      </head>
      <body>
     
    <?php include("menu.html"); ?>
    ...
    <label>Date naissance : <input type="text" name="date_naissance" id="datepickerp"/></label><br/>
    ...
    <input type="submit" value="envoyer"/>
    </form>
     
      </body>
    et action_patient.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
     function setISODate($date) { // bug pris en compte (inversion month/day)
    		$dateintermediaire=date_parse_from_format("d/m/Y",$date); //strptime marche pas
    		$day=$dateintermediaire['day'];
    		$month=$dateintermediaire['month'];
    		$year=$dateintermediaire['year'];
    		return($year."-".$day."-".$month);//conversion fr->ISO (format bdd)
    	}
    			...
    			$sql="INSERT INTO `patient` (nom,prenom,date_naissance,num_secu) VALUES (:nom,:prenom,:champ_date,:num_secu)";
    			echo "<br/>date=".setISODate($_POST['date_naissance'])."<br/>";
     
     
    			$prep = $connexion->prepare($sql);
     
    			...
    			$prep->bindValue(':champ_date', setISODate($_POST['date_naissance']), PDO::PARAM_STR);
    			...	
     
     
    			//Compiler et exécuter la requête
    			$prep->execute();
    mais comme le problème qui reste est du js, je vais poster dans ce forum...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    peux-tu montrer ton bout de code JavaScript (Datepicker)
    + formulaire ?

    Car tu peux utiliser les attributs altFormat et altField de datepicker :
    (je te laisse faire une recherche dessus !)
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("#id_Date").datepicker({ 
    	dateFormat: 'DD dd MM yy', firstDay:1, minDate: new Date(),	// (affichage) de la forme : Vendredi 27 Janvier 2012 
    	altFormat: 'yy-mm-dd', altField: '#id_Date_iso'		// (champ caché) format : yy-mm-dd (anglais)
    });
    => et récupérer le contenu de l'input caché "ma_Date_iso" :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<input id="id_Date_iso" name="ma_Date_iso" type="hidden" />
    	<input id="id_Date" name="ma_Date" type="text" readonly="readonly" value=""  />
    Dernière modification par Invité ; 24/12/2013 à 14h40.

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    http://www.developpez.net/forums/d14...lgre-conseils/

    et avant de poster, j'ai essayé ton code (que j'avais déjà eu car j'avais forcé ma nature et fait une recherche http://www.developpez.net/forums/d12...nvertir-iso/#6 sauf que je dois mal l'utiliser vu que le calendrier ne s'affiche plus...)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Invité
    Invité(e)
    Par défaut
    Que veux-tu qu'on fasse sans code ?
    Citation Envoyé par jreaux62 Voir le message
    peux-tu montrer ton bout de code JavaScript (Datepicker)
    + formulaire ?
    [EDIT]Ou on répond dans l'autre discussion ?

    Il faudrait que tu évites d'en ouvrir à tout bout de champ !

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    [EDIT]Ou on répond dans l'autre discussion ?

    Il faudrait que tu évites d'en ouvrir à tout bout de champ !
    Comme c'est un problème de JS, j'ai cru bien faire en clôturant cette discussion et en ouvrant une autre dans le forum JS.

    Sinon, je confirme que la remarque de Sabotage sur le mauvais format de la date avant son insertion dans la bdd était juste : maintenant, ça marche...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Invité
    Invité(e)
    Par défaut
    Sur ce,

    Bon Noël !


  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Merci et à vous tous aussi

    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. [AC-2003] Insertion date avec un bouton
    Par patb1212 dans le forum VBA Access
    Réponses: 22
    Dernier message: 18/01/2012, 20h15
  2. [PDO] insertion multiple avec PDO
    Par kate59 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/07/2011, 17h32
  3. [PDO] Mises à jour et insertions sûres avec PDO
    Par php_de_travers dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/12/2008, 23h04
  4. [PDO] Insertion Postgresql avec PDO
    Par juninho269 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/02/2008, 14h00
  5. Probleme insertion date avec un champ datetime
    Par locs dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 24/09/2006, 12h19

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