Проблема с сохранением данных аккаунта на MySQL.
#1

Всем доброго времени суток. И так, ближе к делу.

Сегодня, взял регистрацию на MySQL и вписал её в new.pwn, все работает хорошо, регистрирует и авторизует.
Добавил переменную pLevel, в CreateAccount тоже добавил (При регистрации выдает 1 уровень), в LoadAccount и в SaveAccount тоже добавил сохранение этой переменной. Сама проблема в том, что при регистрации, ID, Nick, Password и Level в БД записало отлично, но теперь, когда я присваиваю значение переменной pLevel с помощью команды,

PHP код:
CMD:test(playeridparams[])
{
    
PlayerInfo[playerid][pLevel] = 5;
    
SendClientMessage(playerid, -1"Ok.");
    return 
1;

То в БД, в колонке "level" как стояло на 1, так и стоит. То есть, значение 5 не записывает в БД.

При Дисконнекте игрока ставил SaveAccounts(playerid); , не сохраняет, даже подключил таймер, чтобы аккаунт сохранялся каждые 5 минут, все равно, значение переменной pLevel в БД не записывает. Уже не знаю что делать, перепробовал все варианты, прошу у Вас помощи.
Reply
#2

Покажи код сохранения акка.
Reply
#3

Вот.

PHP код:
SaveAccount(playerid)
{
    if(
PlayerInfo[playerid][pLogged] == true)
    {
        
CheckMySQLConnection();
        new 
query[186], sqlname[MAX_PLAYER_NAME], sqlpass[64];
        
mysql_real_escape_string(PlayerInfo[playerid][pName], sqlname);
        
mysql_real_escape_string(PlayerInfo[playerid][pPassword], sqlpass);
        
format(querysizeof(query), "UPDATE `accounts` SET `nickname` = '%s', `password` = '%s', `level`='%d' WHERE `ID` = '%i'",
        
sqlname,
        
sqlpass,
        
PlayerInfo[playerid][pID],
        
PlayerInfo[playerid][pLevel]);
        
mysql_query(query);
    }
    return 
1;

Reply
#4

Он у тебя сначала берёт значение pID а потом pLevel, поменяй местами PlayerInfo[playerid][pID] и PlayerInfo[playerid][pLevel]
Reply
#5

Все таки мелкая деталь, и получилось не заметить. Спасибо, решил проблему.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)