Partage
  • Partager sur Facebook
  • Partager sur Twitter

insertion de champs date vides impossible

    23 septembre 2022 à 16:08:08

    j'insère des datas dans une base mysql.

    pour ce qui est des dates,i input type="DATE" est acceptée si le champs date contient une valeur.

    Dans le cas contraire, la ligne ne s'inscrit pas dans la base de données.

    j'ai pourtant une valeur par défaut définie  à la création du champs date.

    Je bute sur ce problème

    • Partager sur Facebook
    • Partager sur Twitter
      23 septembre 2022 à 17:23:33

      Bonjour (formule de politesse).

      Faudrait voir un peu plus de code ...

      input c'est côté client pas côté BDD

      Comment est défini le champs date en BDD ? Comment se fait la requête d'insertion ? Quelle est la valeur par défaut qui s'inscrit ?etc

      A+

      -
      Edité par monkey3d 23 septembre 2022 à 17:24:12

      • Partager sur Facebook
      • Partager sur Twitter
        23 septembre 2022 à 17:35:07

        Bonjour,

        Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
        Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

        Pour plus d'informations, nous vous invitons à lire les règles générales du forum

        Manque de Politesse

        Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

        Manque de précisions

        Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

        • Un descriptif clair et précis du problème
        • La tentative actuelle de résolution que vous avez effectué : le code HTML et le code PHP, colorés à l'aide du bouton </> en choisissant respectivement xHTML et PHP
        • Le résultat attendu et le résultat actuel
        • Toutes pistes de recherches pouvant aider à la résolution
        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          26 septembre 2022 à 19:28:33

          Bonjour monkey3d

          desole pour les formules de politesse, je vais essayer de me ratrapper.

          Côté client en effet c'est INSERT pas input. la syntaxe est la suivante : INSERT INTO agents1(numero_fdp, ministere,date_arrivee, date_depart ...

          Pour votre question sur la definition de date :

          -côté BDO : type DATE, Null non, valleur par defaut 2001-01-01

          -côté client : <label for="date_arrivee">date arrivee</label> : <input type="DATE" name="date_arrivee" id ="date_arrivee" /><br/>

          Pour votre question sur la requête d'insertion :

          les $_POST sonr récupérés d'une autre page

          $req = $bdd->prepare('INSERT INTO agents1(numero_fdp, ministere, direction_generale, direction, service, bureau, ifse, macro_grade, etat_du_poste, date_arrivee, date_depart, support, intitule_du_poste, nom, prenom, naissance, sexe, grade, etpt, etp, bop, situation_agent, observation, matricule, rio, structure, email, telephone, site) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

          $req->execute(array($_POST['numero_fdp'], $_POST['ministere'], $_POST['direction_generale'], $_POST['direction'], $_POST['service'], $_POST['bureau'], $_POST['ifse'], $_POST['macro_grade'], $_POST['etat_du_poste'], $_POST['date_arrivee'], $_POST['date_depart'], $_POST['support'], $_POST['intitule_du_poste'], $_POST['nom'], $_POST['prenom'],$_POST['naissance'], $_POST['sexe'], $_POST['grade'], $_POST['etpt'], $_POST['etp'], $_POST['bop'], $_POST['situation_agent'], $_POST['observation'], $_POST['matricule'], $_POST['rio'], $_POST['structure'], $_POST['email'], $_POST['telephone'], $_POST['site']));

          Pour votre question sur la valeur par défaut qui s'écrit, ce devrait être  2001-01-01 comme défini pour la valeur par défaut définie dans la BDO, mais justement le problème est que rien ne s'inscrit, la ligne est purement zappée.
          Voilà monsieur le problème sur leque je bute, votre aide me serait précieuse et merci en tout cas de prendre la peine de me répondre.
          Cordialemenr,
          Pierre Bonel

          • Partager sur Facebook
          • Partager sur Twitter
            27 septembre 2022 à 4:05:00

            Mettre le code incriminé directement est plus explicite que le mettre en forme texte .... donc par exemple la définition exacte de la classe ou table qui doit accueillir les données, code d'insertion complet, etc.

            Il faut pour cela utiliser le bouton </>

            1.- Les erreurs php sont-elles activées ?

            2.- La connexion avec la BDD est-elle établie ?

            3.- Les valeurs transmise $_POST sont-elles bien récupérées ?? echo ou var_dump des variables

            .....

            A+

            -
            Edité par monkey3d 27 septembre 2022 à 4:05:37

            • Partager sur Facebook
            • Partager sur Twitter
              27 septembre 2022 à 16:22:51

              Bonjour Monkey3d

              Merci de m'avoir répondu.

              Je réponds à vos préconisations : il n'y a pas de code incriminé parce que tout marche, sauf que je n'arrive pas à passer le champs date à vide.

              Quand pas de date je recupere en $_POST : ministere de l'interieurDGADFM1Apourvuadministrateur de l'etat0.5354vignoncele a ete ajoute

              INSERT INTO agents(date) NE FONCTIONNE PAS : LA LIGNE N'EST PAS ECRITE

              Quand je rentre des dates, je recupere en $_POST : ministere de l'interieurDGADFM1Apourvu2022-09-232022-09-092022-09-17administrateur de l'etat0.5354vignoncele a ete ajoute

              INSERT INTO agents(date) FONCTIONNE : LA LIGNE EST ECRITE

              -1 les erreurs php sont activées : il n'y a pas d'erreur

              -2 la connection avec la base BDO est tablie

              -3 les valeurs transmises par $_POST sont bien transmises.

              D'ailleurs c'est peut-être là qu'il faut définir les valeurs par défaut du genre si $_POST(date)==NUULL alors $_POST(date)= 2001-01-O1

              Merci encore de votre aide

              Vous me faites réfléchir et je vais peut être y arriver grace a vous

              Merci encore Monkey3d

              Cordialement,

              Pierre Bonel

              • Partager sur Facebook
              • Partager sur Twitter
                28 septembre 2022 à 7:21:05

                Il m'étonnerait qu'un insert qui ne se fait pas ne donne pas lieu à un code retour d'erreur voire un message dans une log.

                Je pense donc qu'il y a une anomalie dans la définition par défaut d'un champs date. Il faudrait checker si tu définis bien une constante.

                Par ailleurs, quel est fonctionnellement l'intérêt de définir une date par défaut qui n'a aucune signification me semble t-il (2001-01-01) ?

                En général soit on met la date du jour - au moins cela indique quand a été faite la transaction, soit c'est la valeur nulle.

                A+

                • Partager sur Facebook
                • Partager sur Twitter
                  28 septembre 2022 à 14:54:27

                  Bonjour Monkey3d

                  Je suis quand même assez satisfait du résultat obtenu, c'est mieux que rien.

                  Pour répondre à vos questions :

                  -l'insert qui ne se fait pas donne lieu à rien. Il n'y a rien, aucun message.

                  -la définition par défaut de la date dans la base de données est du type date, alors je lui mets une date 2001-1-1 et comme cela ne suffit pas, je lui spécifie dans le code avant de faire un insert à vide pour date.

                  -je vous l'accorde, spécifier 2001-1-1 ne présente aucun intérêt mais ''0' ne marche pas parce que la date ne marche pas, à lar igueur, je pourrais indiquer now() mais pour la date ne naissance, cela n'est pas pertinent non plus.

                  Merci en tous cas Monkey3d.

                  Je vais rester comme cela pour le moment.

                  Cordialement,

                  Pierre Bonel

                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 septembre 2022 à 16:18:20

                    Si null est autorisé en bdd pour la date alors ce n'est pas 0 qu'il faut mettre dans l'insert mais bien null !

                    Si cela te convient bonne suite.

                    Passe en résolu même si ce n'est pas tout à fait le cas.

                    A+

                    -
                    Edité par monkey3d 28 septembre 2022 à 16:18:35

                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 septembre 2022 à 21:28:15

                      Bonjour Monkey3d

                      Le null ne foctionne pas.

                      j'ai essayé'

                      'null'

                      "null"

                      null

                      Je passe en résolu même si c'est pas tout à fait le cas.

                      Cordialement,

                      Pierre Bonel

                      • Partager sur Facebook
                      • Partager sur Twitter

                      insertion de champs date vides impossible

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown