Raised This Month: $51 Target: $400
 12% 

Saber si existe en la DB


  
 
 
Thread Tools Display Modes
thesnakebiter
Senior Member
Join Date: Oct 2011
Old 06-21-2012 , 07:08   Re: Saber si existe en la DB
#11

Quote:
Originally Posted by r0ma View Post
no quiere saber si existe la tabla ahora ?-.-
No, me equivoque al escribirlo.
thesnakebiter is offline
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 06-21-2012 , 10:27   Re: Saber si existe en la DB
#12

http://forums.alliedmods.net/showpos...5&postcount=35

Ahi tienes una buena manera de hacerlo, fijate.
__________________
Javivi is offline
thesnakebiter
Senior Member
Join Date: Oct 2011
Old 06-22-2012 , 07:07   Re: Saber si existe en la DB
#13

Quote:
Originally Posted by Javivi View Post
http://forums.alliedmods.net/showpos...5&postcount=35

Ahi tienes una buena manera de hacerlo, fijate.
No entiendo el codigo, la parde de los enums y demas si la entiendo pero la parde de los checks de errores y demas no, ¿podrias explicarme?
thesnakebiter is offline
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 06-22-2012 , 09:01   Re: Saber si existe en la DB
#14

Si pones un campo como UNIQUE, al insertar lo mismo dos veces, la segunda vez te da un error, y asi sabemos que ese campo está repetido.
__________________
Javivi is offline
j1menzz
Junior Member
Join Date: Sep 2008
Location: Venezuela
Old 06-22-2012 , 18:50   Re: Saber si existe en la DB
#15

Javivi se refiere a que al momento de dar ese error, verifica que error es y regresa un mensaje, para eso usa el if. Me parece que es lo más recomendable usando el UNIQUE.
j1menzz is offline
Send a message via MSN to j1menzz Send a message via Skype™ to j1menzz
thesnakebiter
Senior Member
Join Date: Oct 2011
Old 06-23-2012 , 07:23   Re: Saber si existe en la DB
#16

Entonces deberia crear la tabla ya con el UNIQUE puesto y ya desde el plugin intentar definirlo, si tira duplicate simplemente les hago update.

Last edited by thesnakebiter; 06-23-2012 at 07:23.
thesnakebiter is offline
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 06-23-2012 , 10:13   Re: Saber si existe en la DB
#17

Si lo que quieres hacer es actualizar los datos de esa ip, puedes hacer primero un SELECT, y luego un UPDATE/INSERT, o si quieres hacer un "insertar, y si ya existe, actualizar", puedes mirar esto -> http://dev.mysql.com/doc/refman/5.6/...duplicate.html

Lo del UNIQUE es sobre todo para evitar tener cuentas con el mismo nick o datos, pero si es para actualizar informacion como tu has dicho no lo uses.
__________________
Javivi is offline
Asdito´^
Veteran Member
Join Date: Feb 2010
Location: Santa Fe, Argentina
Old 06-23-2012 , 11:39   Re: Saber si existe en la DB
#18

Intenta probando asi.. por lo que veo esta bien.
PHP Code:
public Load(id)
{        
    static 
szQuery[199];
    
Checks()
    
    
formatex(szQuerycharsmax(szQuery), "SELECT 'ip' 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 )
        return 
log_amx("SQL Error #%d - %s"iErrnumszError)
    
    if (!
SQL_NumResults(hQuery))
    {                        
        
formatex(szQuerycharsmax(szQuery), "INSERT INTO `servers_online` VALUES ('%s','%s','%s/%s','%s');"s_IPs_MapName,s_nPlayers,g_iMaxPlayers,s_Hostname//seguro que tenes que guardar solo strings aca? (lo digo por g_IImaxplayers ..    
        
SQL_ThreadQuery(g_SqlTuple,"QueryHandle"szQuery)
        
        return 
PLUGIN_HANDLED;
    }
    else
    {
        
formatex(szQuerycharsmax(szQuery),"UPDATE `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,"QueryHandle"szQuery);
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
QueryHandle(iFailStateHandle:hQueryszError[], iErrnumcData[], iSizeFloat:fQueueTime)
{
    if( 
iFailState != TQUERY_SUCCESS )
    {
        return 
log_amx("SQL Error #%d - %s"iErrnumszError)
    }
    
    return 
PLUGIN_CONTINUE

__________________
################################

Last edited by Asdito´^; 06-23-2012 at 11:40.
Asdito´^ is offline
Send a message via MSN to Asdito´^
thesnakebiter
Senior Member
Join Date: Oct 2011
Old 06-23-2012 , 20:59   Re: Saber si existe en la DB
#19

#18 Muchas Gracias, anda perfecto, lo de MaxPlayers, como lo pondria?
Necesito el número maximo y el número actual de jugadores, no se gaurda bien en la db.

Last edited by thesnakebiter; 06-23-2012 at 21:12.
thesnakebiter is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 06-23-2012 , 22:07   Re: Saber si existe en la DB
#20

Quote:
Originally Posted by thesnakebiter View Post
#18 Muchas Gracias, anda perfecto, lo de MaxPlayers, como lo pondria?
Necesito el número maximo y el número actual de jugadores, no se gaurda bien en la db.
Número máximo de jugadores es con la native 'get_maxplayers'.

Y para el número actual de jugadores es:
PHP Code:
new iPlayersCountplayers32 ];
get_playersplayersiPlayersCount"ch" ); 
"ch" significa que no tomará en cuenta bots o hltv's...

Usá los que quieras acá tenes mas información, http://www.amxmodx.org/funcwiki.php?go=func&id=174
__________________

Last edited by Neeeeeeeeeel.-; 06-23-2012 at 22:08.
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:50.


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