SA-MP Forums Archive
/banoff mysql error - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /banoff mysql error (/showthread.php?tid=664713)



/banoff mysql error - NikodemPolak - 08.03.2019

After entering calls - Player not found.
But the player is in the database.

if(cont == 0) return SCM(playerid, COLOR_LIGHTGREEN3, "Player not found.");
mysql_real_escape_string(reason, reasone);


PHP код:
function MySQLCheckAccount( playername[ ] ) {
    new 
playerID; gString[ 0 ] = (EOS);
    
format( gString, sizeof gString, "SELECT * FROM `users` WHERE `name` = '%e'", playername );
    new 
Cache: usercache = mysql_query( SQL, gString );
    if( !
cache_get_row_count( ) ) {
        
cache_delete( usercache );
        return 
false;
    }
    
playerID = cache_get_field_content_int( 0, "id" );
    
cache_delete( usercache );
    return 
playerID; } 
PHP код:
YCMD:banoff(playerid, params[], help) {
    if(
gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś zalogowany!");
    if(
IsPlayerConnected(playerid))
     {
        if(
PlayerInfo[playerid][pAdmin] >= 1)
        {
            new 
id[30],reason[128],reasone[128],string[200],sendername[30],days,str[1400],year,month,day,hour,minute,second,time,cont,qstr[500],playeridd,escape[30],admlevel;
            if(
sscanf(params, "s[30]ds[128]", id,days,reason)) return SCM(playerid, COLOR_WHITE, "{AB0000}Użyj: {FFFFFF}/banoff [exactly name] [day/0= perm] [reason]");
            if(
days < 0) return SCM(playerid, COLOR_WHITE, "{AB0000}Użyj: {FFFFFF}/banoff [exactly name] [day/0= perm] [reason]");
            
cont = MySQLCheckAccount(id);
            if(
cont == 0) return SCM(playerid, COLOR_LIGHTGREEN3, "Player not found.");
            
mysql_real_escape_string(reason, reasone);
            
getdate(year, month, day);
            
gettime(hour, minute, second);
            
GetPlayerName(playerid, sendername, sizeof(sendername));
            
mysql_real_escape_string(id, escape);
            
format(qstr,sizeof(qstr),"SELECT * FROM bans WHERE `PlayerName`='%s' AND `Active`='1'", escape);
            new 
Cache: banuri = mysql_query(SQL,qstr);
            if(
cache_get_row_count() > 0)
            {
                
SendClientMessage(playerid, COLOR_LIGHTRED, "This player is already banned.");
            }
            else
            {
                
format(qstr, sizeof(qstr), "SELECT `id` FROM users WHERE `name` = '%s'", escape);
                new 
Cache: abs = mysql_query(SQL,qstr);
                if(
cache_get_row_count() > 0) {
                    
playeridd = cache_get_field_content_int(0, "id");
                    
admlevel = cache_get_field_content_int(0, "Admin");
                }
                
cache_delete(abs);
                if( 
admlevel >= PlayerInfo[ playerid ][ pAdmin ] )
                    return 
SendClientMessage( playerid, COLOR_GREY, "You can not ban a higher admin (equal)" );
                if(
days == 0) {
                    
format(string,sizeof(string),"AdmBan: %s was permanently banned by %s, reason: %s.", id, sendername, reasone);
                       if(
strfind(reason, "silent", true) != -1)
                    {
                        
ABroadCast(COLOR_LIGHTRED, string, 1);
                    }
                    else
                    {
                        
SCMTA(COLOR_LIGHTRED, string);
                    }
                    
mysql_format(SQL,str,sizeof(str),"INSERT INTO bans (PlayerName, AdminName, Reason, IP, Days, IPBan, Permanent, Active, Time) VALUES('%s', '%s', '%s', '0', 0, 0, 1, 1, 0)",
                    
escape,PlayerInfo[playerid][pNormalName],reasone);
                    
mysql_tquery(SQL,str,"","");
                    new 
var100[256];
                    
mysql_format(SQL, var100, sizeof(var100), "INSERT INTO punishlogs (`playerid`,`giverid`,`actionid`,`actiontime`,`reason`,`playername`,`givername`) VALUES ('%d','%d','1','0','%s','%s','%s')", playeridd,PlayerInfo[playerid][pSQLID],reasone,escape,sendername);
                    
mysql_tquery(SQL,var100,"","");
                }
                if(
days > 0) {
                    
time = gettime() + (days*86400);
                    
format(string,sizeof(string),"AdmBan: %s was banned by %s for %d day, reason: %s.",id,sendername,days,reasone);
                       if(
strfind(reason, "silent", true) != -1)
                    {
                        
ABroadCast(COLOR_LIGHTRED, string, 1);
                    }
                    else
                    {
                        
SCMTA(COLOR_LIGHTRED, string);
                    }
                    
mysql_format(SQL,str,sizeof(str),"INSERT INTO bans (PlayerName, AdminName, Reason, IP, Days, IPBan, Permanent, Active, Time) VALUES('%s', '%s', '%s', '0', %d, 0, 0, 1, %d)",
                    
id,PlayerInfo[playerid][pNormalName],reasone,days,time);
                    
mysql_tquery(SQL,str,"","");
                    new 
var100[256];
                    
mysql_format(SQL, var100, sizeof(var100), "INSERT INTO punishlogs (`playerid`,`giverid`,`actionid`,`actiontime`,`reason`,`playername`,`givername`) VALUES ('%d','%d','2','%d','%s','%s','%s')", playeridd,PlayerInfo[playerid][pSQLID],days,reasone,escape,sendername);
                    
mysql_tquery(SQL,var100,"","");
                }
            }
            
cache_delete(banuri);
        }
        else return 
SendClientMessage(playerid, COLOR_LIGHTGREEN3, AdminOnly);
    }
    return 
1;
} 



Re: /banoff mysql error - Autorojo - 09.03.2019

Maybe the 'id' value from 'users' table is returning zero. 0 = false.

Try to debug.