bonjour a tous
alors voila mon probleme j'ai créé un programme qui permet d'incrementer une variable ici dollard d'une table mysql pour chaque pseudo.
La probleme est le suivant quand je passe dans la boucle une premiere fois mon pseudo est correct et l'incrementation s'effectue normalement. Ensuite pour le deuxieme pseudo rien ne va plus il affiche fffff se qui est incorrect.
voici la code merci de vos reponse !!
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "base.h"
//mes ajouts
#define __WIN__ // Inclut l'en-tête MySQL
#include "include\mysql.h"
#include <dstring.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//general
MYSQL *conn ;
unsigned int i;
char** vectpseudo[1000] ;
//requete1
MYSQL_RES *result;
MYSQL_ROW myROW ;
unsigned int nombrepseudo ;
//requete2
MYSQL_RES* resultat;
MYSQL_ROW doll ;
char* dollard ;
//requete3
// initialisation obligatoire
conn = mysql_init(NULL);
//connexion
mysql_real_connect(conn,"localhost","root","","jeux",0,NULL,0);
char* req ="SELECT `pseudo` FROM `partie`";
// execution de la requete
mysql_query(conn,req);
// permet de mettre en memoire les résultats
result = mysql_store_result(conn);
char* essai[10] ;
if (result != NULL){
myROW = mysql_fetch_row(result) ;
nombrepseudo = result->row_count ;
//boucle permettant de récupérer les pseudos
for (unsigned int i = 0; i < nombrepseudo; i++) {
essai[i] = myROW[i] ;
}
AnsiString zer = essai[0] ; // premier pseudo correct
AnsiString rez = essai[1] ; // deuxieme pseudo non correct ???
}
nombrepseudo = result->row_count ;
myROW = mysql_fetch_row(result) ;
for (unsigned int i = 0; i < nombrepseudo; i++) {
char* req ="SELECT `pseudo` FROM `partie`";
// execution de la requete
mysql_query(conn,req);
// permet de mettre en memoire les résultats
result = mysql_store_result(conn);
if (result != NULL){
// MySQL peut extraire des résultats
myROW = mysql_fetch_row(result) ;
AnsiString pseudoMaintenant = myROW[i] ;
AnsiString partie1 = "SELECT dollard FROM partie WHERE pseudo = '";
AnsiString partie2 = myROW[i];
AnsiString partie3 = "'" ;
AnsiString entier = partie1 + partie2 + partie3;
char* req2 = entier.c_str();
// execution de la requete
mysql_query(conn,req2);
// permet de mettre en memoire les résultats
resultat = mysql_store_result(conn);
if (result != NULL){
doll = mysql_fetch_row(resultat) ;
dollard = doll[0] ;
int dollardAide = StrToInt(dollard) ;
dollardAide++ ;
AnsiString bou1 = "UPDATE partie SET dollard = '";
AnsiString bou2 = dollardAide ;
AnsiString bou3 = "' WHERE `pseudo` = '" ;
AnsiString bou4 = pseudoMaintenant + "'" ;
AnsiString tout = bou1 + bou2 + bou3 + bou4;
char* req3 = tout.c_str();
mysql_query(conn,req3);
// on libère la mémoire prise pour les résultats
mysql_free_result(result);
}
}
}
mysql_close(conn);
mysql_server_end();
}