Bonjour à tous,

Mon petit soucis du jour : j'aimerai récupérer des données données dans une tableau 2d " tableau[i][j] ". Je ne sais comment initialiser mon tableau car je ne connais pas le nombre de ligne que va me donner ma requête à la base de donnée .... Les informations récupérées "row[2]" sont de type binary(64) dans la base de donnée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/inotify.h>
#include <time.h> 
//mysql
#include <mariadb/mysql.h>
 
int main()
{
 
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
 
char *server = "localhost";
char *user = "***";
char *password = "***"; 
char *database = "TEST";
 
int row_precedent;
int i,j = 0;
 
conn = mysql_init(NULL);
   if (!mysql_real_connect(conn, server,
         user, password, database, 0, NULL, 0)) {
      fprintf(stderr, "%s\n", mysql_error(conn));
      exit(1);
   }  
	 char insertion[300];
	 sprintf(insertion, "SELECT * FROM BDtest WHERE temps > %d", (int)time(NULL));
	 if (mysql_query(conn, insertion)) {
      fprintf(stderr, "%s\n", mysql_error(conn));
      exit(1);
   }
   res = mysql_use_result(conn);
 
   while ((row = mysql_fetch_row(res)) != NULL)
       {
      printf("%s %s %s \n", row[0],row[1],row[2]);
 
		if(row[1]!=row_precedent)
		{
		j=0;
		tableau[i][j]=row[2];
		i++;
                row[1]=row_precedent;
		} 
 		else
		{
		tableau[i][j]=row[2];
		j++;
		}
	}
 mysql_free_result(res);
 mysql_close(conn);	
//fin connexion mysql	
 
}
Merci de votre aide et bon WE