Mam taki kod:
Spoiler
public sql_init() { new szHost[32], szUser[32], szPass[32], szDB[32]; get_pcvar_string(pPcvarDBHost, szHost, 31); get_pcvar_string(pPcvarDBUser, szUser, 31); get_pcvar_string(pPcvarDBPassword, szPass, 31); get_pcvar_string(pPcvarDBBase, szDB, 31); g_SqlTuple = SQL_MakeDbTuple(szHost, szUser, szPass, szDB); SQL_ThreadQuery(g_SqlTuple, "TableHandle", "CREATE TABLE IF NOT EXISTS gildie_gracze (nazwa_gracza VARCHAR(35), nazwa_gildii VARCHAR(35), PRIMARY KEY (nazwa_gracza))"); } public get_save_key(id) { if ( !is_dedicated_server() && id == 1 ) { copy(gSaveKey[id], charsmax(gSaveKey[]), "loopback"); } else { get_user_name(id, gSaveKey[id], charsmax(gSaveKey[])); } sql_load(id); } public sql_load(id) { new index[1]; index[0] = id; new tempSaveKey[63]; copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]); replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" ); formatex(g_Cache, charsmax(g_Cache), "SELECT nazwa_gildii FROM gildie_gracze WHERE nazwa_gracza='%s'", tempSaveKey); SQL_ThreadQuery(g_SqlTuple, "SelectHandle", g_Cache, index, 1); } public TableHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) { if ( FailState ) { if ( FailState == TQUERY_CONNECT_FAILED ) { log_amx("Table - Could not connect to SQL database. [%d] %s", Errcode, Error); } else if ( FailState == TQUERY_QUERY_FAILED ) { log_amx("Table Query failed. [%d] %s", Errcode, Error); } SQLenabled = false; return; } SQLenabled = true; } public QueryHandle(FailState, Handle:Query, Error[], Errcode,Data[], DataSize) { if ( FailState ) { if ( FailState == TQUERY_CONNECT_FAILED ) { log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error); } else if ( FailState == TQUERY_QUERY_FAILED ) { log_amx("Save Query failed. [%d] %s", Errcode, Error); } return; } } public SelectHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) { if ( FailState ) { if ( FailState == TQUERY_CONNECT_FAILED ) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error); } else if ( FailState == TQUERY_QUERY_FAILED ) { log_amx("Load Query failed. [%d] %s", Errcode, Error); } return; } new id = Data[0]; if ( !SQL_NumResults(Query) ) { new tempSaveKey[63]; copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]); replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" ); formatex(g_Cache, charsmax(g_Cache), "INSERT INTO gildie_gracze VALUES('%s', '%s')", tempSaveKey, nazwa_gildii[id]); SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache); } else { SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"nazwa_gildii"), nazwa_gildii[id], 127); } gTablesLoaded[id]++; } public sql_save(id) { if ( gTablesLoaded[id] == 1 ) { if ( gIntermission ) { sql_save_nonthreaded(id); return; } new tempSaveKey[63]; copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]); replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" ); formatex(g_Cache, charsmax(g_Cache), "UPDATE gildie_gracze SET nazwa_gildii=^"%s^" WHERE nazwa_gracza=^"%s^"", nazwa_gildii[id], tempSaveKey); SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache); } } sql_save_nonthreaded(id) { new Errcode, Error[128], Handle:SqlConnection; SqlConnection = SQL_Connect(g_SqlTuple, Errcode, Error, charsmax(Error)); if ( !SqlConnection ) { log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error); SQL_FreeHandle(SqlConnection); return; } new tempSaveKey[63]; copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]); replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" ); new Handle:Query; Query = SQL_PrepareQuery(SqlConnection, "UPDATE gildie_gracze SET nazwa_gildii=%s WHERE nazwa_gracza=^"%s^"", nazwa_gildii[id], tempSaveKey); if ( !SQL_Execute(Query) ) { Errcode = SQL_QueryError(Query, Error, charsmax(Error)); log_amx("Save Query failed. [%d] %s", Errcode, Error); SQL_FreeHandle(Query); SQL_FreeHandle(SqlConnection); return; } SQL_FreeHandle(Query); SQL_FreeHandle(SqlConnection); }
Jak mogę zrobić do niego aby wczytywało dwie tabele?
Fajnie by było jakby ktoś nakierował mnie, dzięki.