Прошу помощи с сохранением данных mysql
#1

Я добавил новое значение в аккаунт, название pGoro.
Вот пример как оно изменяется:
PHP код:
        case 140:
        {
            if(!
response) return 1;
            switch(
listitem)
            {
                case 
0:
                {
                
PI[playerid][pGoro] = 1;
                
SendClientMessage(playerid,COLOR_WHITE,"Вы выбрали 1");
                }
                case 
1:
                {
                
PI[playerid][pGoro] = 2;
                
SendClientMessage(playerid,COLOR_WHITE,"Вы выбрали 2");
                }
                case 
2:
                {
                
PI[playerid][pGoro] = 3;
                
SendClientMessage(playerid,COLOR_WHITE,"Вы выбрали 3");
                }
            }
            
SPD(playerid,4,DIALOG_STYLE_MSGBOX,"{ffffff}Пол персонажа","Выберите пол для вашего персонажа","Мужской","Женский");
        } 
После этого захожу в localhost, в БД, смотрю, значение в Goro в аккаунте изменилось на указанное, после этого выхожу из игры, значение становится опять 0.
Вот stock сохранения (переделал его немного по совету)
PHP код:
stock SavePlayer(playerid)
{
    if(
PlayerLogged[playerid] == 0) return 1;
    
query "";
    
format(query,sizeof(query),
    
"UPDATE `"TABLE_ACCOUNT"` SET `Admin` = %d, `AdmKey` = '%s', `Muted` = %d, `Heal` = '%f', `Cash` = %d, `Sex` = %d, `Skin` = %d, `FracSkin` = %d, `Level` = %d, `Exp` = %d, `Leader` = %d, `Member` = %d, `Rank` = %d, `Warn` = %d, `Goro` = %d, `Job` = %d, `Jail` = %d, `JailTime` = %d WHERE `Name` = '%s'",
    
PI[playerid][pAdmLevel],
    
PI[playerid][pAdmKey],
    
PI[playerid][pMuted],
    
PI[playerid][pHeal],
    
PI[playerid][pCash],
    
PI[playerid][pSex],
    
PI[playerid][pSkin],
    
PI[playerid][pFracSkin],
    
PI[playerid][pLevel],
    
PI[playerid][pExp],
    
PI[playerid][pLeader],
    
PI[playerid][pMember],
    
PI[playerid][pRank],
    
PI[playerid][pWarn],
    
PI[playerid][pGoro],
    
PI[playerid][pJob],
    
PI[playerid][pJail],
    
PI[playerid][pJailTime],
    
NamePlayer(playerid));
    
mysql_query(query, -1, -1cHandle);
    
//
    
format(PI[playerid][pPhones],16,"%i,%i,%i",PI[playerid][pPhone][0],PI[playerid][pPhone][1],PI[playerid][pPhone][2]);
    
format(PI[playerid][pLics],40,"%i,%i,%i,%i,%i",PI[playerid][pLic][0],PI[playerid][pLic][1],PI[playerid][pLic][2],PI[playerid][pLic][3],PI[playerid][pLic][4]);
    
query "";
    
format(query,sizeof(query),"UPDATE `"TABLE_ACCOUNT"` SET `Phone` = '%s', `Licenses` = '%s', `PayCheck` = %d, `Txt` = %d, `PutMoney` = %d WHERE `Name` = '%s'",
    
PI[playerid][pPhones],
    
PI[playerid][pLics],
    
PI[playerid][pPayCheck],
    
PI[playerid][pTxt],
    
PI[playerid][pPutMoney],
    
NamePlayer(playerid));
    
mysql_query(query, -1, -1cHandle);
    
//
    
format(PI[playerid][pStuff],30,"%i,%i,%i",PI[playerid][pStuf][0],PI[playerid][pStuf][1],PI[playerid][pStuf][2]);
    
format(PI[playerid][pJobAmounts],30,"%i,%i,%i",PI[playerid][pJobAmount][0],PI[playerid][pJobAmount][1],PI[playerid][pJobAmount][2]);
    
query "";
    
format(query,sizeof(query),"UPDATE `"TABLE_ACCOUNT"` SET `Stuff` = '%s', `JobAmount` = '%s' WHERE `Name` = '%s'",
    
PI[playerid][pStuff],
    
PI[playerid][pJobAmounts],
    
NamePlayer(playerid));
    
mysql_query(query, -1, -1cHandle);
    
//
    
if(GetPVarInt(playerid"GunCheat") == 0)
    {
        for(new 
013i++)
        {
            
GetPlayerWeaponData(playeridiPI[playerid][pGun][i], PI[playerid][pAmmo][i]);
        }
        
format(PI[playerid][pGuns],40,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
        
PI[playerid][pGun][0],PI[playerid][pGun][1],PI[playerid][pGun][2],PI[playerid][pGun][3],PI[playerid][pGun][4],PI[playerid][pGun][5],
        
PI[playerid][pGun][6],PI[playerid][pGun][7],PI[playerid][pGun][8],PI[playerid][pGun][9],PI[playerid][pGun][10],PI[playerid][pGun][11],PI[playerid][pGun][12]);
        
format(PI[playerid][pAmmos],128,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
        
PI[playerid][pAmmo][0],PI[playerid][pAmmo][1],PI[playerid][pAmmo][2],PI[playerid][pAmmo][3],PI[playerid][pAmmo][4],PI[playerid][pAmmo][5],
        
PI[playerid][pAmmo][6],PI[playerid][pAmmo][7],PI[playerid][pAmmo][8],PI[playerid][pAmmo][9],PI[playerid][pAmmo][10],PI[playerid][pAmmo][11],PI[playerid][pAmmo][12]);
        
query "";
        
format(query,sizeof(query),"UPDATE `"TABLE_ACCOUNT"` SET `Guns` = '%s', `Ammos` = '%s' WHERE `Name` = '%s'",PI[playerid][pGuns],PI[playerid][pAmmos],NamePlayer(playerid));
        
mysql_query(query, -1, -1cHandle);
    }
    return 
1;

Reply
#2

Мало добавить переменную, нужно еще создать поле в таблице
Reply
#3

Quote:
Originally Posted by KriD
Посмотреть сообщение
Мало добавить переменную, нужно еще создать поле в таблице
Я же писал изначально что при каких либо изменениях значение изменяется, естественно в таблице, у меня проблема в том почему оно не сохраняется.
Reply
#4

Ужасное построение запросов.
Reply
#5

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Ужасное построение запросов.
а как можно оптимизировать?
Reply
#6

Quote:
Originally Posted by Skau
Посмотреть сообщение
а как можно оптимизировать?
Уменьшить их количество, очевидно же.
Reply
#7

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Уменьшить их количество, очевидно же.
Если не сложно можно подробнее? Просто я пробую изучать скриптинг.
Reply
#8

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Ужасное построение запросов.
Посмотри пожалуйста, я нормально сделал или нет?Изменил.
Reply
#9

Quote:
Originally Posted by Skau
Посмотреть сообщение
Посмотри пожалуйста, я нормально сделал или нет?Изменил.
Нет. Не поленитесь и изучите синтаксис NySQL и обратите внимание на регистры, ковычки и чего это надо.
Reply
#10

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Нет. Не поленитесь и изучите синтаксис NySQL и обратите внимание на регистры, ковычки и чего это надо.
Спасибо за совет, а поповоду основной проблемы не подскажите?,
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)