Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete base de données

    2 avril 2019 à 14:06:54

    Bonjour,

     j 'aimerai savoir comment fait on des requetes sql en langage c++ afin d'afficher qu 'un seul champ de ma table

    en vs remerciant

    • Partager sur Facebook
    • Partager sur Twitter
      2 avril 2019 à 14:37:21

      Une faut une lib C++ permettant de faire des requêtes.

      Le module de Qt est pas mal mais ajouter Qt juste pour ça, c'est un peu overkill.

      • Partager sur Facebook
      • Partager sur Twitter
        2 avril 2019 à 14:42:59

        j ai installé la lib api_mysql , savez vous comment fait pour afficher qu'un seul champ de ma table pcq j arrive à afficher tous les champs de ma table mais pas qu un seul

        • Partager sur Facebook
        • Partager sur Twitter
          2 avril 2019 à 14:50:08

          Salut,

          Tu envoies quelle requête ?

          • Partager sur Facebook
          • Partager sur Twitter
            2 avril 2019 à 15:09:29

            une requete afin de visualiser le prix d'un objet

            voila mon code mysql_query(sock, "SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = '+nom+' AND LASTNAME '+prenom'"); MYSQL_RES *result = NULL; MYSQL_ROW row; unsigned int i = 0; unsigned int num_champs = 0; result = mysql_use_result(sock); num_champs = mysql_num_fields(result); while ((row = mysql_fetch_row(result))) { unsigned long *lengths; lengths = mysql_fetch_lengths(result); for(i = 0; i < num_champs; i++) { printf("[%.*s] ", (int) lengths[i], row[1] ); printf("[%.*s] ", (int) lengths[i], row[2] ); printf("[%.*s] ", (int) lengths[i], row[5] ); } printf("\n"); } }</endl></endl>

            -
            Edité par TanguyLeRoy5 2 avril 2019 à 15:36:07

            • Partager sur Facebook
            • Partager sur Twitter
              2 avril 2019 à 15:38:12

              S'il te plaît, utilise les balises de code </>, là c'est illisible. Et un peu d'indentation ne ferait pas de mal non plus.
              • Partager sur Facebook
              • Partager sur Twitter
                2 avril 2019 à 15:42:34

                C'est l'éditeur du site qui est buggé, pas sa faute.
                • Partager sur Facebook
                • Partager sur Twitter
                  2 avril 2019 à 15:48:19

                          cout<< "Nom?"<<endl;
                          cin>> nom;
                          cout<<"Prenom?"<<endl;
                          cin>> prenom;
                     mysql_query(sock, "SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = '+nom+' AND LASTNAME '+prenom'");
                          MYSQL_RES *result = NULL;
                          MYSQL_ROW row;
                          unsigned int i = 0;
                          unsigned int num_champs = 0;
                          result = mysql_use_result(sock);
                          num_champs = mysql_num_fields(result);
                          while ((row = mysql_fetch_row(result)))
                          {
                              unsigned long *lengths;
                              lengths = mysql_fetch_lengths(result);
                              for(i = 0; i < num_champs; i++)
                              {
                                 printf("[%.*s] ", (int) lengths[i], row[1] );
                                 printf("[%.*s] ", (int) lengths[i], row[2] );
                                 printf("[%.*s] ", (int) lengths[i], row[5] );
                              }
                              printf("\n");
                          }
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 avril 2019 à 15:53:00

                    Damn ok désolé j'était pas au courant :))

                    Sinon dans ta requête

                    -> "SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = '+nom+' AND LASTNAME '+prenom'"

                    Y'as pas de "=" entre "LASTNAME" et "prenom". Je ne sais pas si c'est l'erreur mais c'est bizarre en tout cas. Ah oui, n'oublie pas le petit ";" a la fin de ta requête (à moins que ta lib en dise autrement, je ne la connais pas, sorry).

                    EDIT: J'ai reussi a mettre un petit conteneur en guise de balise en éditant le message en mettant pre au lieu de p pour les balises =).

                    -
                    Edité par RafaelFelix 2 avril 2019 à 15:56:19

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 avril 2019 à 15:54:16

                      "SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = '+nom+' AND LASTNAME '+prenom'"

                      ???

                      Ta concaténation de chaînes n'est pas correcte. Elle devrait être :

                      const std::string query = "SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = '" + nom + "' AND LASTNAME = '" + prenom + "'";

                      (d'ailleurs, tu sembles avoir inversé name et lastname)

                      -
                      Edité par Emrak 2 avril 2019 à 15:54:54

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 avril 2019 à 16:04:35

                        comment fait t'on apres pour afficher le résultat de cette requete?

                        -
                        Edité par TanguyLeRoy5 2 avril 2019 à 16:04:58

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 avril 2019 à 16:32:51

                          JAMAIS, JAMAIS, ne fabriquez JAMAIS de requete par concaténation.

                          C'est la porte grande ouverte aux injections SQL.

                          Utilisez des requêtes préparées.

                          // ...
                          sql::Connection	*con;
                          sql::PreparedStatement	*prep_stmt;
                          sql::ResultSet  *res;
                          // ...
                          
                          prep_stmt = con->prepareStatement("SELECT NAME,LASTNAME FROM pointeuse_prof WHERE NAME = ?  AND LASTNAME = ?");
                          
                          
                          prep_stmt->serString(1, "marcel);
                          prep_stmt->setString(2, "dugenou");
                          res = prep_stmt->executeQuery();
                          while (res->next()) {
                            std::cout << res>getString(1); 
                          }
                          delete prep_stmt;
                          delete con;
                          

                          -
                          Edité par michelbillaud 2 avril 2019 à 16:41:29

                          • Partager sur Facebook
                          • Partager sur Twitter

                          requete base de données

                          × 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