PDA

Просмотр полной версии : [Вопрос] Вопрос по поводу сохранения MySQL



Сергей
02.07.2016, 15:30
Доброго времени суток форумчане Pro-Pawn
Начал переделывать сохранение аккаунтов, и столкнулся с вот какой проблемой..



new weaponstr[500];
new query[600],str[600];
for(new x; x < 13; x ++)
{
new gun, ammo; GetPlayerWeaponData(playerid, x, gun, ammo);
format(weaponstr, sizeof(weaponstr), "%s%d %d ",weaponstr, (gun<PlayerInfo[playerid][Weapon][x])?gun:PlayerInfo[playerid][Weapon][x], (ammo<PlayerInfo[playerid][Ammo][x])?ammo:PlayerInfo[playerid][Ammo][x]);
}
acc_str_strcat(query, sizeof(query), "Weapons", weaponstr);
Делаем сохранение оружия в бд.
Не понимаю как сделать по другому сохранение...



stock acc_str_strcat(query[], len, name[], str[])
{
new string[256];
format(string, sizeof(string), "`%s` = '%s',",name, str);
strcat(query, string, len);
return true;
}
Избавляюсь от данного кода.

Пример моего сохранения аккаунта



stock SavePlayer(playerid)
{
if(gPlayerLogged[playerid] == true && !ServerRestarted)
{
new query[600],str[600];
new Float: HPdiscon;
GetPlayerHealth(playerid, HPdiscon);
strcat(query, "UPDATE acc SET ");
mysql_format(MysqlConnect,str, sizeof(str), "pLevel='%d',pExp='%d',player_skin='%d',frack_skin='%d',money='%d',pHeal='%f'",
PI[playerid][pLevel],
PI[playerid][pExp],
PI[playerid][pPlayerSkin],
PI[playerid][pFrackSkin],
PI[playerid][pMoney] = GetSRVMoney(playerid),
PI[playerid][pHeal] = HPdiscon);
strcat(query, str);
mysql_query(MysqlConnect, query, false);
}
return 1;
}

Pyce[X]
02.07.2016, 16:57
WHERE `Name` Меняй на свое!

stock SavePlayer(playerid)
{
if(gPlayerLogged[playerid] == false) return true;
new query[250],str[64],nname[MAX_PLAYER_NAME+1];
new Float: HPdiscon;
GetPlayerHealth(playerid, HPdiscon);
GetPlayerName(playerid, nname, MAX_PLAYER_NAME);
format(str,sizeof(str),"UPDATE `acc` SET "),strcat(query,str);
format(str,sizeof(str),"`pLevel` = '%i',",PI[playerid][pLevel]),strcat(query,str);
format(str,sizeof(str),"`pExp` = '%i',",PI[playerid][pExp]),strcat(query,str);
format(str,sizeof(str),"`player_skin` = '%i',",PI[playerid][pPlayerSkin]),strcat(query,str);
format(str,sizeof(str),"`frack_skin` = '%i',",PI[playerid][pFrackSkin]),strcat(query,str);
format(str,sizeof(str),"`money` = '%i',",GetSRVMoney(playerid)),strcat(query,str);
format(str,sizeof(str),"`pHeal` = '%f' ",HPdiscon),strcat(query,str);
format(str,sizeof(str),"WHERE `Name` = '%s'",nname),strcat(query,str);
mysql_query(MysqlConnect, query, false);
return true;
}

Сергей
02.07.2016, 17:14
;74611']WHERE `Name` Меняй на свое!

stock SavePlayer(playerid)
{
if(gPlayerLogged[playerid] == false) return true;
new query[250],str[64],nname[MAX_PLAYER_NAME+1];
new Float: HPdiscon;
GetPlayerHealth(playerid, HPdiscon);
GetPlayerName(playerid, nname, MAX_PLAYER_NAME);
format(str,sizeof(str),"UPDATE `acc` SET "),strcat(query,str);
format(str,sizeof(str),"`pLevel` = '%i',",PI[playerid][pLevel]),strcat(query,str);
format(str,sizeof(str),"`pExp` = '%i',",PI[playerid][pExp]),strcat(query,str);
format(str,sizeof(str),"`player_skin` = '%i',",PI[playerid][pPlayerSkin]),strcat(query,str);
format(str,sizeof(str),"`frack_skin` = '%i',",PI[playerid][pFrackSkin]),strcat(query,str);
format(str,sizeof(str),"`money` = '%i',",GetSRVMoney(playerid)),strcat(query,str);
format(str,sizeof(str),"`pHeal` = '%f' ",HPdiscon),strcat(query,str);
format(str,sizeof(str),"WHERE `Name` = '%s'",nname),strcat(query,str);
mysql_query(MysqlConnect, query, false);
return true;
}

Ты не понял, аккаунты у меня сохраняются, не сохраняется только оружие.