Hi there. What's wrong with the code below? I don't know why, but somehow "Aid" is anywhere 0, even though in the table it is for example 5. The admin nickname getting should work, as long as it's showing fine in the log. It's equal to "nickname" in the table. Thank's in advance.
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <sqlx>
#include <amxbans_core>
new Handle: g_SqlTuple
new g_Cache[1024]
public plugin_init()
{
register_plugin("Admin Online Time", "0.1", "IdiotStrike")
new Host[64],User[64],Pass[64],Db[64]
get_cvar_string("amx_sql_host",Host,63)
get_cvar_string("amx_sql_user",User,63)
get_cvar_string("amx_sql_pass",Pass,63)
get_cvar_string("amx_sql_db",Db,63)
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
}
public amxbans_admin_disconnect(id)
{
new nick[36]
amxbans_get_admin_nick(id, nick, 35)
new Time = get_user_time(id, 1)
new iData[1]
iData[0] = Time
formatex(g_Cache, 1023, "SELECT * from amxnew_amxadmins where nickname LIKE '%%s%'", nick)
SQL_ThreadQuery(g_SqlTuple, "Select", g_Cache, iData, 2)
log_to_file("testing.log", "Admin odpojen: %s; Time = %d", nick, Time)
}
public Select(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
return set_fail_state("Could not connect to SQL database.")
else if(FailState == TQUERY_QUERY_FAILED)
return log_amx("Query failed")
if(Errcode)
return log_amx("Query failed")
new Time = Data[0]
new Aid
while(SQL_MoreResults(Query))
Aid = SQL_ReadResult(Query, 0)
log_to_file("testing.log", "Nactena data: %d; Time = %d", Aid, Time)
new TheData[2]
TheData[0] = Aid
TheData[1] = Time
SaveAdmin(TheData)
return PLUGIN_CONTINUE
}
public SaveAdmin(iData[2])
{
new Aid = iData[0]
new Time = iData[1]
formatex(g_Cache, 1023, "INSERT INTO amxnew_onlinetime VALUES ('%d', '%d', '%d') ON DUPLICATE KEY UPDATE admin_time=admin_time+%d", Aid ,Time, get_systime(), Time)
SQL_ThreadQuery(g_SqlTuple, "Handler", g_Cache)
log_to_file("testing.log", "Snazim se ulozit informace admina: %d; Time = %d", Aid, Time)
}
public Handler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
return set_fail_state("Could not connect to SQL database.")
else if(FailState == TQUERY_QUERY_FAILED)
return log_amx("Query failed")
if(Errcode)
return log_amx("Query failed")
log_to_file("testing.log", "Uspesne ulozeno.")
return PLUGIN_CONTINUE
}
Edit: oh and yeah, in amxnew_amxadmins id is the first column, so Aid = SQL_ReadResult(Query, 0) should load it just fine. I think there is something wrong with that " where nickname LIKE "%%s%" ", but I'm not sure.
Edit2: where nickname='%s' doesn't work either - still returns 0 in Aid