Partage
  • Partager sur Facebook
  • Partager sur Twitter

mysql et c++

probléme pr une requete

    30 mars 2008 à 21:20:30

    bonjour , je fais un programme utilisant le MySQL pour avoir une base de donnée externe !!
    et j'ai un petit probléme par rapport à une requete

    voici le code :
    1. #include <iostream>
    2. #include "constantes.h"
    3. using namespace std;
    4. using namespace sf;
    5. int main()
    6. {
    7.     int ID, mapX=1, mapY=1;
    8.     std::string nom;
    9.     std::string request;
    10. //la fonction I2S sert à transformer un int en string
    11.     request="SELECT nom, skin, cooX, cooY FROM personnage WHERE mapX ='" + I2S(mapX) + "' AND mapY = '" + I2S(mapY) + "' AND connect ='1' ";
    12.     MYSQL mysql;//Déclaration du pointeur de structure de type MYSQL
    13.     mysql_init(&mysql);//Initialisation de MySQL
    14.     mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");//Options de connexion
    15.     if(mysql_real_connect(&mysql,"localhost","root","","bdd_server",0,NULL,0))//Si la connexion réussie...
    16.     {
    17.         //Déclaration des pointeurs de structure
    18.         MYSQL_RES *result = NULL;
    19.         MYSQL_ROW row = NULL;
    20.         unsigned int i;
    21.         unsigned int num_champs = 0;
    22.         unsigned long *lengths; //On déclare un pointeur long non signé pour y stocker la taille des valeurs
    23.         mysql_query(&mysql, request.c_str());
    24.         result = mysql_use_result(&mysql); //On met le jeu de résultat dans le pointeur result
    25.         num_champs = mysql_num_fields(result); //On récupère le nombre de champs
    26.         row = mysql_fetch_row(result);
    27.         lengths = mysql_fetch_lengths(result); //On stocke cette taille dans le pointeur
    28.         /*
    29.         ici normalement on récupére des données avec row[i]
    30.         avec i qui est le numéro du champ
    31.         mais je n'arrive pas à avoir plusieurs ligne de la base de données
    32.         */
    33.         mysql_free_result(result);//Libération du jeu de résultat
    34.         mysql_close(&mysql);//Fermeture de MySQL
    35.     }
    36.     else  //Sinon ...
    37.     {
    38.         printf("Error connect to BDD\n");
    39.     }
    40.     return EXIT_SUCCESS;
    41. }


    auriez vous une idée pour pouvoir récupérer différentes lignes de la base de données et non une seule ???
    merci beaucoup d'avance
    bougaloo
    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2008 à 21:55:30

      Salut,
      Je ne connais pas la library, mais à tous hazard
      1. row[numero_du_champ][numero_ligne]


      ?

      BloodyDark.
      • Partager sur Facebook
      • Partager sur Twitter
        30 mars 2008 à 22:00:43

        je vais tester au cas où mais pas très sûr !!!
        d'autres avis ???

        edit : çà ne fonctionne pas !!! les deuxiémes crochets sont comme dans un char .
        • Partager sur Facebook
        • Partager sur Twitter
          31 mars 2008 à 22:17:42

          bon je viens de trouver une solution mais un autre problème est apparut !!!
          comment faire quand tu envoi un tableau d'une structure à une fonction genre :
          placeEnnemi(mapX, mapY, &ennemis[10]);
          le probléme est : je n'arrive pas à enregistrer les données dans la structure !!!
          sachant que :
          struct ennemis
          {
          std::string nom;
          int X;
          int Y;
          };

          quelqu'un aurait une petite solution pour enregistrer les valeurs pour les 10 ennemis un par un ???
          merci d'avance!
          • Partager sur Facebook
          • Partager sur Twitter

          mysql et c++

          × 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