Przechodzenie się po wierszach w tabeli

0

Witam,
ma. takie pytanko w jaki sposób można się przemieszczać po wierszach w kolumnie ? Wiem , że można zrobić to w taki sposób.

MYSQL_RES *res;
MYSQL_ROW row;

while ( ( row = mysql_fetch_row(res)) != NULL )
{
if(row[1] == password) // ale czy można zrobić coś takiego??
{
}
}

1
mysql_query(sqlhnd, "SELECT * FROM `my_table`");
MYSQL_RES *confres = mysql_store_result(sqlhnd);
int totalrows = mysql_num_rows(confres);
int numfields = mysql_num_fields(confres);
MYSQL_FIELD *mfield;

while((row = mysql_fetch_row(confres)))
{
    for(i = 0; i < numfields; ++i)
    {
        char *val = row[i];
        // do something with val...
    }
}

Btw, rozważ użycie MySQL++

0

Edit@Już działa . Za blisko było mysql_free_result(res).

0

Teraz mam kolejny problem . Dlaczego gdy chce sprawdzić czy dwie kolumny mają taką samą wartość jaką podał użytkownik to pętla while nie przechodzi do żadnego ifa ? Użyłem debuggera i kod zatrzymuje się na while'u . Może to głupi problem ale pierwszy raz się stykam z mysql.

while ((row = mysql_fetch_row(res)) != NULL)
			{
			//for (int i = 0; i < numfields; ++i)
				//{
				if (row[1] == user_id)
				{
					if (row[2] == password)
					{
						std::string fail = "NsTeST 7998 " + game.server_ip + ":" + std::to_string(game.server_port) + ":0:1.0." + game.server_name + " " + game.server_ip + ":1338:0:1.1." + game.server_name;
						send(n_client->Client, EncryptPacket(fail).c_str(), EncryptPacket(fail).size() + 1, 0);
					}

					else
					{
						std::string packet = EncryptPacket("fail Wrong Password");
						send(n_client->Client, packet.c_str(), packet.size(), 0);
					}
				}

				else
				{
					std::string fail = EncryptPacket("fail Wrong User ID");
					send(n_client->Client, fail.c_str(), fail.size(), 0);
				}
				
			//}

			} 

Jeśli dam if(row[i] == user_id) to też nie działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1