PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
new Handle:g_SqlTuple
new g_iMaxPlayers
new s_IP[60]
new s_MapName[32]
new s_nPlayers
new s_Hostname[64]
public plugin_init()
{
register_plugin("DB Test","1.0","TSB")
register_clcmd("say /crear","Load")
g_iMaxPlayers = get_maxplayers()
g_SqlTuple = SQL_MakeDbTuple("127.0.0.1","super","1234", "newtest")
}
public Load()
{
static szQuery[199];
Checks()
formatex(szQuery, charsmax(szQuery),"SELECT * FROM servers_online WHERE ip = '%s'", s_IP)
SQL_ThreadQuery(g_SqlTuple, "LoadHandler", szQuery);
}
public LoadHandler(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
{
static szQuery[199];
if(iFailState != TQUERY_SUCCESS)
log_amx(" SQL Error #%d - %s", iErrnum, szError)
if( !SQL_NumResults( hQuery ) )
{
formatex(szQuery, charsmax(szQuery),"INSERT INTO servers_online (ip,map,online,name) VALUES ('%s','%s','%s/%s','%s')", s_IP, s_MapName,s_nPlayers,g_iMaxPlayers,s_Hostname)
SQL_ThreadQuery(g_SqlTuple, "LoadHandler", szQuery);
}
else
{
formatex(szQuery, charsmax(szQuery),"UPDATE TABLE servers_online SET map = '%s', online = '%s/%s', name = '%s' WHERE ip = '%s'", s_MapName,s_nPlayers,g_iMaxPlayers,s_Hostname,s_IP)
SQL_ThreadQuery(g_SqlTuple, "LoadHandler", szQuery);
}
}
No puse una funcion.
Lo que ocurre es que yo quiero comprobar si ya existe una entrada en la tabla de la base de datos con la ip del sv, intento con SELECT * FROM servers_online WHERE ip = 'IPDELSV' y con SQL_NumResults( hQuery ) pero se hace un loop infinito intentando todo el rato modificar la columna pero no la crea en caso de que no este.