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

Langage PHP Discussion :

Enregistrer une date dans la bdd (input date ou text ?)


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut Enregistrer une date dans la bdd (input date ou text ?)
    Bonjour,
    je souhaite à l'aide d'un formulaire enregistrer un événement. Je dois saisir un titre et ensuite une date. J'ai une table "events" : id,title(varchar),date(date).
    Je veux que les dates s'enregistrent ainsi (AAAA-MM-JJ).
    J'ai essayé de mettre le input en texte ou en date mais aucune données n'est enregistré dans la bdd.

    code :
    Code : 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
    <?php
     
    if(isset($_POST['envoyer']))
    {
        //si evenement et dateevenement existe
        if (isset($_POST['evenement']) AND isset($_POST['dateevenement']))
        {
                // s'ils ne sont pas vide
                if(!empty($_POST['evenement']) AND !empty($_POST['dateevenement']))
                {
                    //transforme texte en date
                    $date = date('Y-m-d', strtotime($_POST['dateevenement']));
     
                    $evenement = htmlspecialchars($_POST['evenement']);
     
                    $req = $bdd->prepare('INSERT INTO events (title, date) VALUES (?, ?)');
                    $req -> execute(array($evenement, $date));
     
                    echo "OK";
                }
                else
                {
                    echo "Veuillez remplir tous les champs";
                }
        }
    }      
    ?>
     
    <h2>Ajouter évenements</h2> 
        <form method="POST"> 
             <textarea name="evenement" rows="10" cols="50"></textarea>
             <input type="text" name="dateevenment" placeholder="AAAA-MM-JJ"><br>
             <input type="submit" name="envoyer" value="Envoyer"> 
        </form>
    Merci d'avance et bon appétit

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    Attention à la compatibilité de <input type="date"> !
    • Firefox : Pas de support

    cela dit, on peut utiliser un pattern pour formater :
    On trouve des pattern plus pointus ici.
    Comme celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="dateevenement" placeholder="Date : aaaa-mm-jj" pattern="[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" />
    MAIS, ça n'empêche SURTOUT PAS de faire la vérification du format en PHP (à la récupération).


    Autres solutions :
    Dernière modification par Invité ; 14/06/2017 à 12h50.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci de ta réponse jreaux62, je ne connaissais pas du tout les pattern.
    Mais je n'arrives toujours pas à exécuter la requête.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si la date est correctement formatée, tu n'a pas besoin de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $date = date('Y-m-d', strtotime($_POST['dateevenement']));
    À toi de mettre des echo pour contrôler tes variables.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Mon erreur est simplement une erreur orthographe. Le name du input pour saisir la date était 'dateevnement' au lieu de 'dateevenement'.
    Je te remercie de ton aide jreaux62
    Bonne journée

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

Discussions similaires

  1. Affichage d'un compte à rebours à partir d'une date dans la BDD
    Par mlle.asmae dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/01/2016, 10h52
  2. comment créer une date dans un champ input de type text
    Par le maire dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/06/2014, 11h58
  3. Réponses: 4
    Dernier message: 30/08/2011, 18h30
  4. Réponses: 8
    Dernier message: 12/07/2006, 10h32
  5. [MySQL] Insérer la date dans la BdD ?
    Par arti2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/02/2006, 15h08

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