SA-MP Forums Archive
UpdatePlayerData query problem - 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: UpdatePlayerData query problem (/showthread.php?tid=630808)



UpdatePlayerData query problem - Face9000 - 18.03.2017

I have this query:

pawn Код:
UpdatePlayerData(playerid)
{
    if (Player[playerid][IsLoggedIn] == false) return 0;

    new query[145];
    mysql_format(g_SQL, query, sizeof query, "UPDATE `players` SET `Kills` = %d, SET `Deaths` = %d, SET `Score` = %d, SET `Money` = %d, SET `Level` = %d, SET `Cookies` = %d, SET `Warns` = %d WHERE `id` = %d LIMIT 1",
    Player[playerid][Kills]);
    Player[playerid][Deaths]);
    Player[playerid][Score]);
    Player[playerid][Money]);
    Player[playerid][Level]);
    Player[playerid][Cookies]);
    Player[playerid][Warns]);
    Player[playerid][ID]);
    mysql_tquery(g_SQL, query);
    return 1;
}
But i'm getting this.

Код:
warning 215: expression has no effect
error 001: expected token: ";", but found ")"
To all over the code.

Second question: Is necessary to do like (an example):

Player[playerid]Score] = 0; after the registration?

Or i just need to set 0 as default in the Score row in database?

Thanks.


Re: UpdatePlayerData query problem - Konstantinos - 18.03.2017

Arguments in format should be separated by comma and you used ); which is invalid.

It's always good to reset variables to avoid issues.


Re: UpdatePlayerData query problem - Face9000 - 18.03.2017

So you suggest me to reset player variables after the registration?

However did in this way:

pawn Код:
UpdatePlayerData(playerid)
{
    if (Player[playerid][IsLoggedIn] == false) return 0;

    new query[145];
    mysql_format(g_SQL, query, sizeof query, "UPDATE `players` SET `Kills` = %d, SET `Deaths` = %d, SET `Score` = %d, SET `Money` = %d, SET `Level` = %d, SET `Cookies` = %d, SET `Warns` = %d WHERE `id` = %d LIMIT 1",
    Player[playerid][Kills],
    Player[playerid][Deaths],
    Player[playerid][Score]),
    Player[playerid][Money],
    Player[playerid][Level],
    Player[playerid][Cookies],
    Player[playerid][Warns],
    Player[playerid][ID]),
    mysql_tquery(g_SQL, query);
    return 1;
}
Still the same..


Re: UpdatePlayerData query problem - iLearner - 18.03.2017

You don't necessarily need to put SET before every column name, you can simply insert it before the first one... eg:
Quote:

UPDATE players SET kills = %d, Deaths = %d, ... WHERE condition = your_condition ",...);




Re: UpdatePlayerData query problem - iLearner - 18.03.2017

Player[playerid][Score]), --> remove )

Player[playerid][ID]), --> Player[playerid][ID]);

Edit: sorry for thw double post.


Re: UpdatePlayerData query problem - Face9000 - 18.03.2017

pawn Код:
UpdatePlayerData(playerid)
{
    if (Player[playerid][IsLoggedIn] == false) return 0;

    new query[145];
    mysql_format(g_SQL, query, sizeof query, "UPDATE `players` SET `Kills` = %d,`Deaths` = %d,`Score` = %d,`Money` = %d, `Level` = %d,`Cookies` = %d, `Warns` = %d WHERE `id` = %d LIMIT 1",
    Player[playerid][Kills]);
    Player[playerid][Deaths]);
    Player[playerid][Score]);
    Player[playerid][Money]);
    Player[playerid][Level]);
    Player[playerid][Cookies]);
    Player[playerid][Warns]);
    Player[playerid][ID]);
    mysql_tquery(g_SQL, query);
    return 1;
}
Same.............


Re: UpdatePlayerData query problem - iLearner - 18.03.2017

Quote:

UpdatePlayerData(playerid)
{
if (Player[playerid][IsLoggedIn] == false) return 0;
new query[180];
mysql_format(g_SQL, query, sizeof query, "UPDATE `players` SET `Kills` = %d,`Deaths` = %d,`Score` = %d,`Money` = %d, `Level` = %d,`Cookies` = %d, `Warns` = %d WHERE `id` = %d LIMIT 1",
Player[playerid][Kills],
Player[playerid][Deaths],
Player[playerid][Score],
Player[playerid][Money],
Player[playerid][Level],
Player[playerid][Cookies],
Player[playerid][Warns],
Player[playerid][ID]);
mysql_tquery(g_SQL, query);
}

Try this


Re: UpdatePlayerData query problem - Face9000 - 18.03.2017

Ok is working, but edited the code a bit. I have another problem. I'm trying to save and load score/money, other variables works, score/money no:

This is when someone logins:

pawn Код:
AssignPlayerData(playerid)
{
    cache_get_value_int(0, "id", Player[playerid][ID]);
    cache_get_value_int(0, "Kills", Player[playerid][Kills]);
    cache_get_value_int(0, "Deaths", Player[playerid][Deaths]);
    cache_get_value_int(0, "Score", SetPlayerScore(playerid,Player[playerid][Score]);
    cache_get_value_int(0, "Money", GivePlayerMoney(playerid,Player[playerid][Money]);
    cache_get_value_int(0, "Level", Player[playerid][Level]);
    cache_get_value_int(0, "Cookies", Player[playerid][Cookies]);
    cache_get_value_int(0, "Warns", Player[playerid][Warns]);
    return 1;
}
And this is to save:

pawn Код:
UpdatePlayerData(playerid)
{
    if (Player[playerid][IsLoggedIn] == false) return 0;
    new query[180];
    mysql_format(g_SQL, query, sizeof query, "UPDATE `players` SET `Kills` = %d,`Deaths` = %d,`Score` = %i,`Money` = %i, `Level` = %d,`Cookies` = %d, `Warns` = %d WHERE `id` = %d LIMIT 1",
    Player[playerid][Kills],
    Player[playerid][Deaths],
    GetPlayerScore(playerid),
    GetPlayerMoney(playerid),
    Player[playerid][Level],
    Player[playerid][Cookies],
    Player[playerid][Warns],
    Player[playerid][ID]);
    mysql_tquery(g_SQL, query);
    return 1;
}
Can someone tell me what is wrong? I'm saving with GetPlayerMoney/Score and loading it with GivePlayerMoney/SetPlayerScore but doesn't work.


Re: UpdatePlayerData query problem - iLearner - 18.03.2017

Quote:

AssignPlayerData(playerid)
{
Player[playerid][ID] = cache_get_value_int(0, "id");
Player[playerid][Kills] = cache_get_value_int(0, "Kills");
Player[playerid][Deaths] = cache_get_value_int(0, "Deaths");
Player[playerid][Score] = cache_get_value_int(0, "Score");
Player[playerid][Money] = cache_get_value_int(0, "Money");
Player[playerid][Level] = cache_get_value_int(0, "Level");
Player[playerid][Cookies] = cache_get_value_int(0, "Cookies");
Player[playerid][Warns] = cache_get_value_int(0, "Warns");
SetPlayerScore(playerid, Player[playerid][Score]);
SetPlayerMoney(playerid, Player[playerid][Money]);
return 1;
}

try this


Re: UpdatePlayerData query problem - Face9000 - 18.03.2017

Quote:

error 017: undefined symbol "cache_get_value_int_ovrld"

What