Partage
  • Partager sur Facebook
  • Partager sur Twitter

lien PHP vers Bdd MySQL

projet universitaire

Sujet résolu
    25 mars 2020 à 17:06:26

    bonjours

    je travail sur la realisation d'un back-office pour un projet de site web universitaire et je suis confronter a ce problème.
    je veux remplir un formulaire pour créer un article et le stocker dans une base de donnée. 
    dans cette article je met plusieurs champs de text, un champ date et un upload de photo. quand je soumet un formulaire, la photo s'upload bien sur le serveur mais la base de donnée ne se remplie pas.

    je n'arrive pas a trouver la source du problème et donc j'aurai besoin d'aide.

    l'entièreté du projet est ici : https://github.com/NathanAliss/APhpToFix

    merci d'avance pour votre aide

    -
    Edité par AbcAbc6 25 mars 2020 à 17:14:34

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2020 à 20:04:50

      Bonsoir.

      Ta requête SQL est incorrecte, il ne faut pas de quote autour des noms de colonnes, tu peux par contre utiliser les backtick `.

      Ce qui donnerait par exemple :

      INSERT INTO article(`titre`, `dPost`, `content`, `img_name`, `img_size`, `commentaire`) VALUES (:titre, :dPost,:content, :imgN, :imgS, :commentaire)

      Au lieu de :

      INSERT INTO article('id', 'titre', 'dPost', 'content', 'img_name', 'img_size','commentaire')VALUES (NULL,:titre,:dPost,:content,:imgN,:imgS,:commentaire)

      Dans mon exemple j'ai enlevé le champ id, car étant donné que tu listes les colonnes à insérer et que le champ id doit à mon avis être en auto_increement, il est inutile de la lister en lui assignant NULL.

      -
      Edité par Lartak 25 mars 2020 à 20:05:36

      • Partager sur Facebook
      • Partager sur Twitter

      Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

        25 mars 2020 à 20:49:35

        Faut faire déboggueur sur github maintenant ... Pourquoi ne pas avoir posté le code directement ici ?

        Tu pourrais quand même activer les erreurs PDO/SQL, c'est le minimum à faire systématiquement quand même, parce que ça m'étonnerait que ce soit valide comme requête avec les quotes autour des colonnes.

        En plus, tu as un fichier connexion.php mais tu ne l'inclus pas, tu dupliques le code de la connexion PDO.

        > !empty($_POST["titre"]&&$_POST["dPost"]&&$_POST["text"]&&$_POST["comm"])

        Ce n'est pas vraiment comme ça qu'on utilise empty

        -
        Edité par julp 25 mars 2020 à 20:59:10

        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2020 à 9:29:53

          julp a écrit:

          Faut faire déboggueur sur github maintenant ... Pourquoi ne pas avoir posté le code directement ici ?

          Tu pourrais quand même activer les erreurs PDO/SQL, c'est le minimum à faire systématiquement quand même, parce que ça m'étonnerait que ce soit valide comme requête avec les quotes autour des colonnes.

          En plus, tu as un fichier connexion.php mais tu ne l'inclus pas, tu dupliques le code de la connexion PDO.

          > !empty($_POST["titre"]&&$_POST["dPost"]&&$_POST["text"]&&$_POST["comm"])

          Ce n'est pas vraiment comme ça qu'on utilise empty

          -
          Edité par julp il y a environ 12 heures

          merci pour ce retour. 
          le debug sur GitHug est la car j'ai poster ma demande sur plusieurs et le fais que je travail mon code entre plusieurs machine 

          j'ai bien les erreur d'activé si je ne me trompe pas et c'est de la que viens mon problème. je n'ai pas de message d'erreur et tout mon code s'execute sans problème a l'exeption des donnée qui ne s'inscrive pas dans la BDD.

          le fichier connexion n'est pas exploiter car en raison des bug, j'ai voulu rassembler tout le code en un fichier. mais en effet une fois le problème résolus je remettrai en place le fichier de connexion

          par contre je ne crompend pas ta reponse et ce qui pose probléme selon toi avec mon !empty. pourais tu developper s'il te plais ?

          merci a vous pour c'est retour

          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2020 à 10:42:32

            La fonction empty, ne prend qu'un argument, soit une seule variable, par conséquent le code à la ligne 125 est faux.

            -
            Edité par Lartak 26 mars 2020 à 10:43:54

            • Partager sur Facebook
            • Partager sur Twitter

            Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

              26 mars 2020 à 11:01:26

              donc si je comprend bien faut utiliser une structure comme sa 

              if(!empty($_POST["titre"])&&!empty($_POST["dPost"])&&!empty($_POST["text"])&&!empty($_POST["comm"])&&$checkUp==TRUE){#mon code}
              }}}else { #la suite du code}

              ou comme sa. 

              if(!empty($_POST["titre"])){
                if(!empty($_POST["dPost"])){
                  if(!empty($_POST["text"]){ if(!empty($_POST["comm"])&&$checkUp==TRUE){#mon code}
              }}}else { #la suite du code}
              j'ai bien compris ?
              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2020 à 11:04:59

                Oui, comme la première c'est suffisant, avec des espaces pour aérer un peu le code, que tout ne soit pas collé les un aux autres.

                -
                Edité par Lartak 26 mars 2020 à 11:06:36

                • Partager sur Facebook
                • Partager sur Twitter

                Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                  26 mars 2020 à 11:14:36

                  bon. j'ai effectuer les modification mais le problème persiste. 
                  je me pose la question si c'est pas lier directement au prepare/execute que j'ai mal formater
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 mars 2020 à 11:26:34

                    Dans ta table article, tu aurais:

                    • id
                    • titre
                    • dPost
                    • text
                    • img_name
                    • img_size

                    Et dans la requête SQL, tu listes les colonnes:

                    • titre
                    • dPost
                    • content
                    • img_name
                    • img_size
                    • commentaire

                    D'où elles sortent les colonnes content et commentaire ?

                    -
                    Edité par Lartak 26 mars 2020 à 11:27:13

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                      26 mars 2020 à 11:33:38

                      > j'ai bien les erreurs d'activées si je ne me trompe pas et c'est de là que vient mon problème. je n'ai pas de message d'erreur et tout mon code s'exécute sans problème à l'exception des données qui ne s'inscrivent pas dans la BDD

                      > je me pose la question si ce n'est pas lié directement au prepare/execute que j'ai mal formaté

                      Tu as lu mon lien vers la doc ? Si on cherche dans ton code (PDO::)ATTR_ERRMODE, le seul que l'on trouve est dans UPloadScript.php où il est commenté !

                      Si une requête INSERT ne fait rien (pas d'insertion), à moins vraiment d'avoir utilisé l'option IGNORE, c'est qu'elle plante et si tu n'as pas d'erreur pour autant, je suis désolé, mais c'est qu'elles [PDO mais aussi PHP en général] ne sont pas affichées/activées. Je serais curieux que tu me fournisses une autre explication au fait que ton INSERT puisse ne rien faire sans en fait planter ? Soyons logiques !

                      EDIT : un autre cas me vient : un INSERT ... SELECT pour lequel le SELECT ne renvoie rien

                      -
                      Edité par julp 26 mars 2020 à 11:47:36

                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 mars 2020 à 11:50:09

                        bon. sa semble fonctioné

                        merci a toi pour ton aide et comblé ma stupidité... (c'est une erreur basique que j'aurai du voir des le debut)

                        une bonne journée a toi

                        • Partager sur Facebook
                        • Partager sur Twitter

                        lien PHP vers Bdd MySQL

                        × 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