AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Spanish (https://forums.alliedmods.net/forumdisplay.php?f=135)
-   -   Saber si existe en la DB (https://forums.alliedmods.net/showthread.php?t=187979)

thesnakebiter 06-20-2012 15:30

Saber si existe en la DB
 
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(szQuerycharsmax(szQuery),"SELECT * FROM servers_online WHERE ip = '%s'"s_IP)
    
SQL_ThreadQuery(g_SqlTuple"LoadHandler"szQuery);
}
public 
LoadHandler(iFailStateHandle:hQueryszError[], iErrnumcData[], iSizeFloat:fQueueTime)
{
    static 
szQuery[199];
    
    if(
iFailState != TQUERY_SUCCESS)
        
log_amx(" SQL Error #%d - %s"iErrnumszError)
        
    if( !
SQL_NumResultshQuery ) )
    {
        
formatex(szQuerycharsmax(szQuery),"INSERT INTO servers_online (ip,map,online,name) VALUES ('%s','%s','%s/%s','%s')"s_IPs_MapName,s_nPlayers,g_iMaxPlayers,s_Hostname)
        
SQL_ThreadQuery(g_SqlTuple"LoadHandler"szQuery);
    }
    else
    {
        
formatex(szQuerycharsmax(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.

fearAR 06-20-2012 15:55

Re: Saber si existe en la DB
 
Dirija el handler hacia otra función, si no claro que va a estar infinitamente enviando consultas.

Sí no otra seria utilizar una variable que vaya alternandole el valor cada vez que sea necesario.

PHP Code:

enum ESTADOS_VAR
{
    
ESTADO1 0,
    
ESTADO2,
    
ESTADO3
};

new 
ESTADOS_VAR VAR_ESTADO[33];

// Luego...

VAR_ESTADO id ] = ESTADO1;
// SQL_ThreadQuery...

// Dentro del Handler al que nos envia el thread.

if ( VAR_ESTADO id ] == ESTADO1 )
{
    
// Hago lo siguiente
    // Luego envio otra consulta...
    
VAR_ESTADO id ] = ESTADO2;
    
// SQL_ThreadQuery....
}
else if ( 
VAR_ESTADO id ] == ESTADO2 )
{
    
// Hago otra cosa...


Saludos...

StickP0le 06-20-2012 19:44

Re: Saber si existe en la DB
 
fear ar, que significan los dos puntos despues de crear una variable? por ejemplo new hola:todobien[33]

shinoda 06-20-2012 20:07

Re: Saber si existe en la DB
 
Quote:

Originally Posted by StickP0le (Post 1732885)
fear ar, que significan los dos puntos despues de crear una variable? por ejemplo new hola:todobien[33]

Es una etiqueta, al igual que CsTeams:var.

Neeeeeeeeeel.- 06-21-2012 02:10

Re: Saber si existe en la DB
 
Quote:

Originally Posted by shinoda (Post 1732904)
Es una etiqueta, al igual que CsTeams:var.

Todavía no pude entender para que sirven...

thesnakebiter 06-21-2012 04:17

Re: Saber si existe en la DB
 
fearAR,Gracias por tu respuesta, pero aun asi necesito saber si existe la entrada o no ;)

r0ma 06-21-2012 04:26

Re: Saber si existe en la DB
 
PHP Code:

CREATE TABLE IF NOT EXISTS 

?

lucas_7_94 06-21-2012 04:52

Re: Saber si existe en la DB
 
CREATE TABLE IF NO EXISTS

r0ma 06-21-2012 05:05

Re: Saber si existe en la DB
 
Quote:

Originally Posted by thesnakebiter (Post 1733030)
fearAR,Gracias por tu respuesta, pero aun asi necesito saber si existe la tabla o no ;)

no quiere saber si existe la tabla ahora ?-.-

thesnakebiter 06-21-2012 07:08

Re: Saber si existe en la DB
 
Sí, pero la tabla ya esta creada y me refiero a si existe la ip ya.Yo en las columnas guardo mapa,ip,jugadores,... solo me falta saber si existe esa ip en la tabla para que no me cree otra entrada con los mismos datos...


All times are GMT -4. The time now is 18:26.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.