Checking row in SQL
#1

So there isnt much of an issue, but what I want to achieve is that, I check the SQL if that username exists.

Basically if there is anyone with that name in the SQL

PHP код:
YCMD:changename(playerid,params[],help) {
    if(
help) return SendClientMessage(playerid,COLOR_RED,"This command is used to allow player to change their name");
    if(
AccInfo[playerid][NameToken] <= 0) return SendClientMessage(playerid,COLOR_RED,"Seems like you dont have a name change token");
    new 
NewName[24];
    if(
sscanf(params,"s[24]",NewName)) return SendClientMessage(playerid,COLOR_RED,"Usage: /changename [new name]");
    if(
strlen(params) >= 24) return SendClientMessage(playerid,COLOR_RED,"Name cannot be above 24 characters");
    if(
strfind(NewName"_") == -1) return SendClientMessage(playerid,COLOR_RED,"Your name must contain underscore in it. Usage: FirstName_LastName");
    
    new 
query[128];
    
mysql_format(mysqlquery,sizeof(query),"UPDATE `players` SET `Username`='%s' WHERE `ID`=%d",NewName,AccInfo[playerid][ID]);
    
mysql_tquery(mysqlquery);
    
    new 
string[128];
    
format(string,sizeof(string),"You have changed your name into %s. You will be disconnected within few seconds to apply updates",NewName);
    
SendClientMessage(playerid,COLOR_RED,string);
    
format(string,sizeof(string),"%s has changed their name into %s",GetName(playerid),NewName);
    
NameChangeLog(string);
    return 
true;

Reply
#2

pawn Код:
AccountExists(const str[])
{
    new query[85],Cache:result,rows;
    mysql_format(mysql, query, sizeof(query), "SELECT `ID` FROM `players` WHERE `Username` = '%e' LIMIT 1",str);
    result = mysql_query(mysql, query);
    if((rows = cache_num_rows()))
    {
        rows = cache_get_row_int(0, 0);
        cache_delete(result);
        return rows;
    }
    cache_delete(result);
    return rows;
}
YCMD:changename(playerid,params[],help)
{
    if(help) SendClientMessage(playerid,COLOR_RED,"This command is used to allow player to change their name");
    else if(AccInfo[playerid][NameToken] <= 0) SendClientMessage(playerid,COLOR_RED,"Seems like you dont have a name change token");
    else if(isnull(params)) SendClientMessage(playerid,COLOR_RED,"Usage: /changename [new name]");
    else if(!(3 <= strlen(params) < MAX_PLAYER_NAME)) SendClientMessage(playerid,COLOR_RED,"Name cannot be above 24 characters");
    else if(strfind(params, "_") == -1) SendClientMessage(playerid,COLOR_RED,"Your name must contain underscore in it. Usage: FirstName_LastName");
    else if(AccountExists(params)) // info
    else
    {
        new query[128];
        mysql_format(mysql, query,sizeof(query),"UPDATE `players` SET `Username`='%e' WHERE `ID`=%d",params,AccInfo[playerid][ID]);
        mysql_tquery(mysql, query);

        new string[128];
        format(string,sizeof(string),"You have changed your name into %s. You will be disconnected within few seconds to apply updates",params);
        SendClientMessage(playerid,COLOR_RED,string);

        format(string,sizeof(string),"%s has changed their name into %s",GetName(playerid),params);
        NameChangeLog(string);
    }
    return true;
}
Reply
#3

Quote:
Originally Posted by Jefff
Посмотреть сообщение
pawn Код:
AccountExists(const str[])
{
    new query[85],Cache:result,rows;
    mysql_format(mysql, query, sizeof(query), "SELECT `ID` FROM `players` WHERE `Username` = '%e' LIMIT 1",str);
    result = mysql_query(mysql, query);
    if((rows = cache_num_rows()))
    {
        rows = cache_get_row_int(0, 0);
        cache_delete(result);
        return rows;
    }
    cache_delete(result);
    return rows;
}
YCMD:changename(playerid,params[],help)
{
    if(help) SendClientMessage(playerid,COLOR_RED,"This command is used to allow player to change their name");
    else if(AccInfo[playerid][NameToken] <= 0) SendClientMessage(playerid,COLOR_RED,"Seems like you dont have a name change token");
    else if(isnull(params)) SendClientMessage(playerid,COLOR_RED,"Usage: /changename [new name]");
    else if(!(3 <= strlen(params) < MAX_PLAYER_NAME)) SendClientMessage(playerid,COLOR_RED,"Name cannot be above 24 characters");
    else if(strfind(params, "_") == -1) SendClientMessage(playerid,COLOR_RED,"Your name must contain underscore in it. Usage: FirstName_LastName");
    else if(AccountExists(params)) // info
    else
    {
        new query[128];
        mysql_format(mysql, query,sizeof(query),"UPDATE `players` SET `Username`='%e' WHERE `ID`=%d",params,AccInfo[playerid][ID]);
        mysql_tquery(mysql, query);

        new string[128];
        format(string,sizeof(string),"You have changed your name into %s. You will be disconnected within few seconds to apply updates",params);
        SendClientMessage(playerid,COLOR_RED,string);

        format(string,sizeof(string),"%s has changed their name into %s",GetName(playerid),params);
        NameChangeLog(string);
    }
    return true;
}
Thanks Jeff!
EDIT: I will rep you as soon as possible
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)