Mysql help! can't save money, score, deaths, kills
#1

My score, kills, deaths, money don't save into mysql system

codes:
dialog
pawn Код:
if(dialogid == DIALOG_REGISTER)
    {
        if(response)
        {
            if(!strlen(inputtext) || strlen(inputtext) > 100)
            {
                SendClientMessage(playerid, COLOR_RED,"~r~Error: ~w~You must insert a password between 1-100 characters!");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Blue"Please register",""White"Welcome to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to register!\n\n"White"Please insert a password below:", "Register", "Cancel");
            }
            else if(strlen(inputtext) > 0 && strlen(inputtext) < 100)
            {
                new escpass[100];
                mysql_real_escape_string(inputtext, escpass);
                MySQL_Register(playerid, escpass);
            }
        }
        if(!response)
        {
                SendClientMessage(playerid, COLOR_RED,"~r~Error: ~w~You must register before logging in!");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Blue"Please register",""White"Welcome to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to register!\n\n"White"Please insert a password below:", "Register", "Cancel");
        }
    }
if(dialogid == DIALOG_LOGIN)
    {
        if(!response)
        {
                SendClientMessage(playerid, COLOR_RED,"~r~Error: ~w~You must login before you spawn!");
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""Blue"Please log-in", ""White"Welcome back to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to log-in!\n\n"White"Please insert "Red"your"White" password below:", "Login", "Cancel");
        }
        if(response)
        {
            new query[200], pname[24], escapepass[100];
            GetPlayerName(playerid, pname, 24);
            mysql_real_escape_string(inputtext, escapepass);
            format(query, sizeof(query), "SELECT `user` FROM `playerdata` WHERE `user` = '%s' AND password = `SHA1`('%s')", pname, escapepass);
            mysql_query(query);
            mysql_store_result();
            new numrows = mysql_num_rows();
            if(numrows == 1) MySQL_Login(playerid);
            if(!numrows)
            {
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""Blue"Please log-in", ""White"Welcome back to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to log-in!\n\n"White"Please insert "Red"your"White" password below:", "Login", "Cancel");
                SendClientMessage(playerid, COLOR_RED,"~r~Error: ~w~Incorrect password!");
            }
            mysql_free_result();
        }
    }
return 1;
}
On player disconnect:
pawn Код:
if(Logged[playerid] == 1)
    {
        new score = GetPlayerScore(playerid);
        new money = GetPlayerMoney(playerid);
        new kills = PlayerInfo[playerid][Kills];
        new deaths = PlayerInfo[playerid][Deaths];
        new query[300], pname[24];
        GetPlayerName(playerid, pname, 24);
        format(query, sizeof(query), "UPDATE `playerdata` SET `score` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d', `level` = '%d', WHERE `user` ='%s'", score, money, kills, deaths, AdminLevel[playerid], pname);
        mysql_query(query);
On player connect
pawn Код:
MoneyGiven[playerid] = -1;
    JustLogged[playerid] = 0;
    new query[300], pname[24];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE `user` = '%s' LIMIT 1", pname);
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Blue"Please register",""White"Welcome to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to register!\n\n"White"Please insert a password below:", "Register", "Cancel");
    }
    if(rows == 1)
    {
        new IP[2][15];
        mysql_fetch_field_row(IP[0],"IP");
        GetPlayerIp(playerid, IP[1], 15);
        if(strlen(IP[0]) != 0 && !strcmp(IP[0], IP[1], true))
        {
            MySQL_Login(playerid);
        }
        else if(!strlen(IP[0]) || strcmp(IP[0], IP[1], true))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, ""Blue"Please log-in", ""White"Welcome back to "Red""SERVER_NAME""White"!\n"White"In order to start playing, you have to log-in!\n\n"White"Please insert "Red"your"White" password below:", "Login", "Cancel");
            IsRegistered[playerid] = 1;
        }
    }
    mysql_free_result();
    return 1;
}
OnGameModeInit:
pawn Код:
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
    mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(40), score INT(20), money INT(20), kills INT(20), deaths INT(20), level INT(20), IP VARCHAR(15) )");
    mysql_debug(1);
Please help
I really need score, kill, money, deaths to save

enum
pawn Код:
enum pInfo
{
      Kills,
      Deaths
}

Thanks
Reply
#2

PHP код:
if(Logged[playerid] == 1)
    {
        new 
score GetPlayerScore(playerid);
        new 
money GetPlayerMoney(playerid);
        new 
kills PlayerInfo[playerid][Kills];
        new 
deaths PlayerInfo[playerid][Deaths];
        new 
query[300], pname[24];
        
GetPlayerName(playeridpname24);
        
format(querysizeof(query), "UPDATE `playerdata` SET `score` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d', `level` = '%d' WHERE `user` ='%s'"scoremoneykillsdeathsAdminLevel[playerid], pname);
        
mysql_query(query); 
You *had a comma before WHERE, that's probably why it was not working
Reply
#3

Quote:
Originally Posted by mati233
Посмотреть сообщение
PHP код:
if(Logged[playerid] == 1)
    {
        new 
score GetPlayerScore(playerid);
        new 
money GetPlayerMoney(playerid);
        new 
kills PlayerInfo[playerid][Kills];
        new 
deaths PlayerInfo[playerid][Deaths];
        new 
query[300], pname[24];
        
GetPlayerName(playeridpname24);
        
format(querysizeof(query), "UPDATE `playerdata` SET `score` = '%d', `money` = '%d', `kills` = '%d', `deaths` = '%d', `level` = '%d' WHERE `user` ='%s'"scoremoneykillsdeathsAdminLevel[playerid], pname);
        
mysql_query(query); 
You *had a comma before WHERE, that's probably why it was not working
Thanks for help!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)