[C] MySQL, pobranie danych z pola do tabeli


(Marco700) #1

Witam,

Mam w bazie danych pola:

id numer

1 1555

2 1666

3 1777

Wykonuję zapytanie:

...


char bufor[100];

char *tablica[10];

i = -1;

...


if (mysql_query(conn, "SELECT `numer` FROM `baza` WHERE 1"))

{

    fprintf(stderr, "%s\n", mysql_error(conn));

    exit(1);

}


res = mysql_use_result(conn);


while ((row = mysql_fetch_row(res)) != NULL)

{

      sprintf(bufor, "%s", row[0]);

      tablica[++i]= bufor;

}


...

Próbowałem inne sposoby ale jakoś nie bardzo wiem jak to ugryźć więc wymyśliłem aby zrobić tablicę wskaźników i stringi(tutaj akurat numery zapisuję jako stringi) które są zapisywane w funkcji sprintf do bufora, przypisywać po kolei do wskaźników w tablicy. Natomiast niezbyt mi to wyszło ponieważ jak później wypisuję sobie tablicę:

for(i = 0; i < 3; ++i)

    printf("%s\n", tablica[i]);

to dostaję:

1777

1777

1777

Dlaczego we wszystkich (tutaj akurat 3) elementach tablicy wylądowały te same numery?


(Martini M) #2

Witam,

A pokaż fragment odpowiedzialny za przepisywanie do tablicy.

Pozdrawiam


(Marco700) #3

No to jest ten fragment:

while ((row = mysql_fetch_row(res)) != NULL)

{

      sprintf(bufor, "%s", row[0]);

      tablica[++i]= bufor;

}

(Martini M) #4

Po pierwsze przed while ustawiasz zmienna i na zero?

A tu masz przykład połączenia i pobrania danych z mysql'a przy pomocy c++

http://anaturb.net/MySQL/mysql_c.htm

Mam nadzieję, że będzie pomocne.

Powodzenia


(Marco700) #5

Nie rozumiemy się, i nie ustawiam na 0 tylko na -1 jak byś zajrzał w kod który wkleiłem to byś to zobaczył.

Poza tym ja umiem połączyć się z bazą i pobrać elementy które w niej są, ewentualnie wypisać, natomiast nie działa mi przypisanie tych danych do kolejnych elementów tablicy.

Dzięki za odzew ale już uzyskałem wyczerpującą odpowiedź w innym miejscu.