1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// Fonction permettant de récuprer les resultats de la requete et de les stocker dans un tableau
s_resultat* recuperationInformations(s_resultat *tab, MYSQL *mysql){
//Déclaration des pointeurs de structure
MYSQL_RES *result = NULL;
MYSQL_ROW row = NULL;
int i,cpt,nb, num_champs = 0;
//Requête qui sélectionne tout dans ma table scores
mysql_query(mysql, "SELECT * FROM ville");
printf("Requete effectuee ! \n");
result = mysql_store_result(mysql);
nb = mysql_num_rows(result);
// tablo dynamique du resultat
do{
tab=(s_resultat*)malloc(nb * sizeof(s_resultat));
cpt ++;
}while(tab==NULL && cpt==3);
//On récupère le nombre de champs
num_champs = mysql_num_fields(result);
//Structure temporaire
s_resultat temp;
//Tant qu'il y a un résultat
while ((row = mysql_fetch_row(result))) {
// CREATION STRUCTURE TEMPORAIRE
temp.insee = strtoul(row[0]?row[0]:"0", NULL, 10);
//temp.insee = strtoul(row[0], NULL, 10);
strcpy(temp.nom,row[1]?row[1]:"");
//printf("%s",row[1]) ;
temp.latitude = strtod(row[2]?row[2] : "0",NULL );
temp.longitude = atof(row[3]?row[3] : "0" );
temp.cp = strtoul(row[4]?row[4] : "0", NULL, 10 );
// INSERTION DANS UN TABLEAU DYNAMIQUE
*(tab+i) = temp;
i++;
}
//Libération du jeu de résultat
// mysql_free_result(result);
// for(int i=0; i<nb; i++) free(tab+i);
// free(tab);
//Fermeture de MySQL
//mysql_close(&mysql);
//system("pause");
return tab;
} |
Partager