Gå til innhold

Få ut row fra mysql (med C++)


Anbefalte innlegg

Hei.

 

Bruker standard C API til Mysql, og prøver å hente ut data fra en viss rad.

 

Har en tabell som heter Klasserom:

har 2 kolonner: KlasseID og Klasse_navn.

 

Hvis jeg kjører en spørring som dette:

"SELECT * FROM Klasserom"

 

Er det en måte jeg kan få frem verdien til Klasse_navn og ikke både KlasseID og Klasse_navn?

 

Kode:

while(( row = mysql_fetch_row( db_GetKlasserom->get_res_set() )) != NULL)
{
for(i = 0; i < mysql_num_rows( db_GetKlasserom->get_res_set() ); i++ )
 {
 	Klasser->Insert( _T( row[i] ), 0 );
 }
}

 

Med dette så blir også KlasseID satt inn.

Jeg kan altids kjøre:

"SELECT Klasse_navn FROM Klasserom", men vil gjerne ha ID'en også, og bare vise Klasse_navn.

 

Hvis noen skjønte dette så håper jeg på svar, vet det var litt dårlig forklart.. =/

 

Takker uansett for svar jeg får :)

 

EDIT:

Og ikke bry dere om

Klasser->Insert( _T( row[i] ), 0 );

 

Det er bare hvordan jeg setter den inn med wxWidgets, kunne like gjerne vært

cout << row;

:)

Endret av kimla
Lenke til kommentar
Videoannonse
Annonse

mysql_fetch_row() returnerner MYSQL_ROW, som bare er char**

Dersom det du sier stemmer, at du har KlasseID og klasse_navn, burde denne funke. da id = row[0] mens navn = row[1]

while(row = mysql_fetch_row(...)) {
 Klasser->Insert(_T(row[1]),0);
}

Personlig ville jeg nok laget en wrapper som brukte assosiativt array

 

Merk:

Du burde selvfølgelig sjekke at row[1] eksisterer, evt. bruke legge raden inn i en vector.

Endret av Nazgul
Lenke til kommentar
mysql_fetch_row() returnerner MYSQL_ROW, som bare er char**

Dersom det du sier stemmer, at du har KlasseID og klasse_navn, burde denne funke. da id = row[0] mens navn = row[1]

while(row = mysql_fetch_row(...)) {
 Klasser->Insert(_T(row[1]),0);
}

Personlig ville jeg nok laget en wrapper som brukte assosiativt array

5977917[/snapback]

 

Her har vi mannen som kan tingene sine.. :)

Nå kom alt trippelt opp, men burde vel klare å løse det selv :)

 

Takk for svar!

Endret av kimla
Lenke til kommentar

Løste det, bare å fjerne for-loopen for de som lurte :)

while(( row = mysql_fetch_row( db_GetKlasserom->get_res_set() )) != NULL )
{
 	Klasser->Insert( _T( row[1] ), 0 );
}

Endret av kimla
Lenke til kommentar

Hva slags løsning ønsker du?

Det der er antakelig helt standard løsning. Som sagt, en annen mulighet er å lage en klasse som lageer et assosiativt array.

Og som nevnt, sjekk at row[1] faktisk eksisterer.

 

 

forresten, det å sjekke for NULL er unødvendig. Skader selvsagt ingen at det er der, men om du ser på koden jeg lagde over, så fungerer den akkurat likt.

NULL == 0 == false

Endret av Nazgul
Lenke til kommentar
Hva slags løsning ønsker du?

Det der er antakelig helt standard løsning. Som sagt, en annen mulighet er å lage en klasse som lageer et assosiativt array.

Og som nevnt, sjekk at row[1] faktisk eksisterer.

 

 

forresten, det å sjekke for NULL er unødvendig. Skader selvsagt ingen at det er der, men om du ser på koden jeg lagde over, så fungerer den akkurat likt.

NULL == 0 == false

5978063[/snapback]

 

Aff, glemte å fjerne den siste teksten der, den var der bare fra et innlegg jeg holdte på å skrive når jeg hadde en annen løsning som ikke fungerte så bra, sorry :)

Lenke til kommentar

Er nok ikke dumt med den klassen du nevner forresten, men har rett og slett ikke kunnskap nok enda til å gjøre det, ser på for det meste på dette som trening.

 

Sant det med NULL'en, ser litt enklere ut når det ikke er noe der (iom. at jeg har drevet med PHP og MySQL mye mer enn C++ og MySQL så er det litt lettere å se på..)

Lenke til kommentar
  • 2 uker senere...

mulig eg feiler litt ....

 

"assosiativt array" .... er ikke det stl sin map?

 

Unødvendig å lage den mener nå jeg, med mindre man ønsker å lære hva det er seff.

assosiativt array er forsåvidt det hippe navnet på arrayen som er implementert i php ... som er en map...

 

anyway ... mulig eg surrer... sent

Lenke til kommentar
mulig eg feiler litt ....

 

"assosiativt array" .... er ikke det stl sin map?

 

Unødvendig å lage den mener nå jeg, med mindre man ønsker å lære hva det er seff.

assosiativt array er forsåvidt det hippe navnet på arrayen som er implementert i php ... som er en map...

 

anyway ... mulig eg surrer... sent

6031842[/snapback]

Stemmer det.

Jeg synes det er veldig greit å bruke, da du kan referere til kolonner minrad["kunder"] istedet for å bruke tall, men du kan bruke tall om du vil :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...