Вопрос по MySql

antismert

Участник
Сообщения
38
Реакции
2
Ребята привет! Помогите Плиз.
Как вытащить определенные строки из таблици...
Пожалуйста дайте пример на целые чиста и строки.



new String:query[PLATFORM_MAX_PATH];
Format(query, sizeof(query), "SELECT * FROM table WHERE steamid ='%s'", SteamId);
new Handle:hquery = SQL_Query(g_connect, query);

if (hquery != INVALID_HANDLE && SQL_FetchRow(hquery))
{

PrintToServer("IN BASE! %s %d",SteamId,hquery['ЧИСЛО']);
PrintToServer("IN BASE! %s %s",SteamId,hquery['СТРОКА']);
}
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
PHP:
public OnClientAuthorized(client, const String:auth[])
{
	decl String:sAuth[32];
	GetClientAuthString(client, sAuth, sizeof(sAuth) - 1);
	decl String:sQuery[256];
	Format(sQuery, sizeof(sQuery) - 1, "SELECT * FROM dp_users WHERE Steam = '%s'", sAuth);
	SQL_TQuery(db, SQL_SelectPlayerCallback, sQuery, client);
}

public OnClientDisconnect(client)
{ 
	if (db == INVALID_HANDLE)
	{
		new String:Error[256];
		LogError("Fail connect: %s", Error);
	}
	else if(!IsFakeClient(client)) 
	{ 
		decl String:sAuth[64], String:pName[150], String:query[2048]; 
		GetClientName(client, sAuth, sizeof(sAuth) - 1); 
		SQL_EscapeString(db, sAuth, pName, sizeof(pName) - 1); 
		GetClientAuthString(client, sAuth, sizeof(sAuth) - 1); 
		FormatEx(query, sizeof(query), 
		"INSERT INTO dp_users (Steam, Nick, Kills, Deaths, Level, EXP, Credits, BanValue) VALUES ('%s', '%N', %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE Steam = '%s', Nick = '%N', Kills = %d, Deaths = %d, Level = %d, EXP = %d, Credits = %d, BanValue = %d",
		sAuth,
		client,
		Player[pKills][client],
		Player[pDeaths][client],
		Player[pLevel][client],
		Player[pEXP][client],
		Player[pCredit][client],
		Player[pBanValue][client],
		sAuth,
		client,
		Player[pKills][client],
		Player[pDeaths][client],
		Player[pLevel][client],
		Player[pEXP][client],
		Player[pCredit][client],
		Player[pBanValue][client]); 
		SQL_TQuery(db, SQL_SelectPlayerCallback, query); 
	} 
}

public SQL_SelectPlayerCallback(Handle:owner, Handle:hndl, const String:error[], any:iClient)
{
	if(hndl == INVALID_HANDLE)
	{
		LogError("Ошибка подключения к базе данных (%s)", error);
	}
	else
	{
		if(SQL_HasResultSet(hndl) && SQL_FetchRow(hndl))
		{
			Player[pKills][iClient] = SQL_FetchInt(hndl, 2);
			Player[pDeaths][iClient] = SQL_FetchInt(hndl, 3);
			Player[pLevel][iClient] = SQL_FetchInt(hndl, 4);
			Player[pEXP][iClient] = SQL_FetchInt(hndl, 5);
			Player[pCredit][iClient] = SQL_FetchInt(hndl, 6);
			Player[pBanValue][iClient] = SQL_FetchInt(hndl, 7);
		}
		else
		{
			Player[pKills][iClient] = 0;
			Player[pDeaths][iClient] = 0;
			Player[pLevel][iClient] = 0;
			Player[pEXP][iClient] = 0;
			Player[pCredit][iClient] = 0;
			Player[pBanValue][iClient] = 0;
		}
	}
}

Тут сразу дал и выбор строк из бд и запись.
 

antismert

Участник
Сообщения
38
Реакции
2
PHP:
public OnClientAuthorized(client, const String:auth[])
{
	decl String:sAuth[32];
	GetClientAuthString(client, sAuth, sizeof(sAuth) - 1);
	decl String:sQuery[256];
	Format(sQuery, sizeof(sQuery) - 1, "SELECT * FROM dp_users WHERE Steam = '%s'", sAuth);
	SQL_TQuery(db, SQL_SelectPlayerCallback, sQuery, client);
}

public OnClientDisconnect(client)
{ 
	if (db == INVALID_HANDLE)
	{
		new String:Error[256];
		LogError("Fail connect: %s", Error);
	}
	else if(!IsFakeClient(client)) 
	{ 
		decl String:sAuth[64], String:pName[150], String:query[2048]; 
		GetClientName(client, sAuth, sizeof(sAuth) - 1); 
		SQL_EscapeString(db, sAuth, pName, sizeof(pName) - 1); 
		GetClientAuthString(client, sAuth, sizeof(sAuth) - 1); 
		FormatEx(query, sizeof(query), 
		"INSERT INTO dp_users (Steam, Nick, Kills, Deaths, Level, EXP, Credits, BanValue) VALUES ('%s', '%N', %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE Steam = '%s', Nick = '%N', Kills = %d, Deaths = %d, Level = %d, EXP = %d, Credits = %d, BanValue = %d",
		sAuth,
		client,
		Player[pKills][client],
		Player[pDeaths][client],
		Player[pLevel][client],
		Player[pEXP][client],
		Player[pCredit][client],
		Player[pBanValue][client],
		sAuth,
		client,
		Player[pKills][client],
		Player[pDeaths][client],
		Player[pLevel][client],
		Player[pEXP][client],
		Player[pCredit][client],
		Player[pBanValue][client]); 
		SQL_TQuery(db, SQL_SelectPlayerCallback, query); 
	} 
}

public SQL_SelectPlayerCallback(Handle:owner, Handle:hndl, const String:error[], any:iClient)
{
	if(hndl == INVALID_HANDLE)
	{
		LogError("Ошибка подключения к базе данных (%s)", error);
	}
	else
	{
		if(SQL_HasResultSet(hndl) && SQL_FetchRow(hndl))
		{
			Player[pKills][iClient] = SQL_FetchInt(hndl, 2);
			Player[pDeaths][iClient] = SQL_FetchInt(hndl, 3);
			Player[pLevel][iClient] = SQL_FetchInt(hndl, 4);
			Player[pEXP][iClient] = SQL_FetchInt(hndl, 5);
			Player[pCredit][iClient] = SQL_FetchInt(hndl, 6);
			Player[pBanValue][iClient] = SQL_FetchInt(hndl, 7);
		}
		else
		{
			Player[pKills][iClient] = 0;
			Player[pDeaths][iClient] = 0;
			Player[pLevel][iClient] = 0;
			Player[pEXP][iClient] = 0;
			Player[pCredit][iClient] = 0;
			Player[pBanValue][iClient] = 0;
		}
	}
}

Тут сразу дал и выбор строк из бд и запись.


бОЛЬШОЕ СПАСИБО!
 
Сверху Снизу