Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete sql erreur

Sujet résolu
    13 février 2019 à 20:10:01

    Bonjour,

    je ne sais pas si c'est le bon endroit pour poser ma question .

    J'ai cré une requête  SQL pour modifier des valeurs de ma table lignefraishorsforfait mais cette requête ne modifie pas les attributs .

    Est ce que quelqu'un peut me dire ce que j'ai mal fait ???

    ci-joint les captures d'écran de ma bdd et de ma requête .

    -
    Edité par KerenHassan 14 février 2019 à 18:26:58

    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2019 à 20:23:05

      Bonjour,

      Merci d'utiliser le bouton </> pour mettre ton code en forme, c'est assez illisible comme ça.

      De ce qu'on voit, tu crées une fonction mais tu ne l'appelles pas.

      -
      Edité par philodick 13 février 2019 à 20:23:17

      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2019 à 20:39:04

        Désolé si mon code est illisible.

         function majFraisForfaitH($idVisiteur, $mois, $lesFraisL, $lesFraisM, $lesFraisD){
                 $lesCles = array_keys($lesFraisL);
                  foreach ($lesCles as $unIdFraisH) { // id d'un frais
                    $qteL = $lesFraisL[$unIdFraisH]; //represente le  libelle
                    $qteM = $lesFraisM[$unIdFraisH]; // represente le montant
                    $qteD = $lesFraisD[$unIdFraisH]; // representela date 
                    $requetePrepare = PdoGSB::$monPdo->prepare( // on rajoute a la table lignefraisForfait la quantite pour tel utilisateur , tel mois 
                             'UPDATE lignefraishorsforfait '
                        . 'SET lignefraishorsforfait.libelle = :uneQteL '   
                        . 'SET lignefraishorsforfait.montant = :uneQteM ' 
                        . 'SET lignefraishorsforfait.date = :uneQteD '   
                        . 'WHERE lignefraishorsforfait.idvisiteur = :unIdVisiteur '
                        . 'AND lignefraishorsforfait.mois = :unMois '
                        . 'AND lignefraishorsforfait.idfraisforfait = :idFrais'   //pour quel type de frais (nuit restaurant ...)
                    );
                        
                    $requetePrepare->bindParam(':uneQteL', $qteL, PDO::PARAM_INT);
                    $requetePrepare->bindParam(':uneQteM', $qteM, PDO::PARAM_INT);
                    $requetePrepare->bindParam(':uneQteD', $qteD, PDO::PARAM_INT);
                    $requetePrepare->bindParam(':unIdVisiteur', $idVisiteur, PDO::PARAM_STR);
                    $requetePrepare->bindParam(':unMois', $mois, PDO::PARAM_STR);
                    $requetePrepare->bindParam(':idFrais', $unIdFraisH, PDO::PARAM_STR);
                    $requetePrepare->execute();
                }   
            }

        j'appelle ma fonction dans mon code php, mais je suis surs que la fonction est bien appelé  pars que j'ai fais des tests comme echo 'toto'; et çà c'est bien affiché

        Donc la fonction est bien appelé mais c'est au niveau de la requête qu'il y a un problème je pense .

        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2019 à 20:57:53

          Tu as activé les erreurs ? A première vue tu as plusieurs fois SET, alors que les modifs devraient être séparées par des virgules.
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2019 à 21:20:25

            pardon le message ne c'était pas affiché.

            j'ai essayé ça, mais ça n'a pas fonctionné.

             'UPDATE lignefraishorsforfait '
                            . 'SET lignefraishorsforfait.libelle = :uneQteL , lignefraishorsforfait.montant = :uneQteM, lignefraishorsforfait.date = :uneQteD '  
                            . 'WHERE lignefraishorsforfait.idvisiteur = :unIdVisiteur '
                            . 'AND lignefraishorsforfait.mois = :unMois '
                            . 'AND lignefraishorsforfait.idfraisforfait = :idFrais'



            Aucune erreur ne s'affiche

            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2019 à 23:28:16

              Bonsoir

              Désolé , je ne savais pas ce que t'entendais par la

              voila ce qu'il m'affiche , et une foie vérification le la variable $mois, ne s'affiche pas . Ce qui est assez étrange car quand je l'envoie dans mon php juste avant l'appel de la fonction il s'affiche correctement.

              -
              Edité par KerenHassan 13 février 2019 à 23:49:17

              • Partager sur Facebook
              • Partager sur Twitter
                14 février 2019 à 8:56:30

                Il n'y a que toi qui peux voir pourquoi cette variable est vide, on n'a pas les éléments nécessaires, on ne voit pas d'où elle vient.
                • Partager sur Facebook
                • Partager sur Twitter
                  14 février 2019 à 18:08:43

                  C'est bon toutes mes valeurs sont juste maintenant ,

                  cependant la requête ne s’exécute pas .

                  Je pense que c'est du a comment est ce que je met le SET,mais je tente diverses manière , en vain et aucun méssage ne s'affiche

                  en tous cas merci pour votre précieuse aide

                  function majFraisForfaitH($idVisiteur, $mois, $lesFraisL, $lesFraisM,$lesFraisD){
                           $lesCles = array_keys($lesFraisL);
                            foreach ($lesCles as $unIdFraisH) { // id d'un frais
                              $qteL = $lesFraisL[$unIdFraisH];
                              $qteM = $lesFraisM[$unIdFraisH];
                              $qteD = $lesFraisD[$unIdFraisH]; // representela date 
                              $requetePrepare = PdoGSB::$monPdo->prepare( // on rajoute a la table lignefraisForfait la quantite pour tel utilisateur , tel mois 
                                       'UPDATE lignefraishorsforfait '
                                  . 'SET lignefraishorsforfait.libelle = :uneQteL, lignefraishorsforfait.montant = :uneQteM, lignefraishorsforfait.date = :uneQteD '
                   . 'WHERE lignefraishorsforfait.idvisiteur = :unIdVisiteur ' . 'AND lignefraishorsforfait.mois = :unMois ' . 'AND lignefraishorsforfait.id = :idFrais' //pour quel type de frais (nuit restaurant ...) ); $requetePrepare->bindParam(':uneQteL', $qteL, PDO::PARAM_INT); $requetePrepare->bindParam(':uneQteM', $qteM, PDO::PARAM_INT); $requetePrepare->bindParam(':uneQteD', $qteD, PDO::PARAM_INT); $requetePrepare->bindParam(':unIdVisiteur', $idVisiteur, PDO::PARAM_STR); $requetePrepare->bindParam(':unMois', $mois, PDO::PARAM_STR); $requetePrepare->bindParam(':idFrais', $unIdFraisH, PDO::PARAM_INT); $requetePrepare->execute(); } }



                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 février 2019 à 18:15:09

                    Bonjour,

                    Mauvais titre

                    Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

                    Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

                    De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

                    Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

                    Pour modifier votre titre, éditez le premier message de votre sujet.

                    (titre originel : Problème requete sql)

                    • Partager sur Facebook
                    • Partager sur Twitter

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

                      16 février 2019 à 13:21:02

                      Non, passer de "Problème requete sql" à "Requête SQL erreur" ça n'est pas mieux. Veuillez relire mon précédent message, notamment la partie en gras.
                      • Partager sur Facebook
                      • Partager sur Twitter

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

                      requete sql erreur

                      × 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