Im in need of some help here i have a problem that my server isnt saving the player purchased vehicles
may someone can figure it out if theres something wrong with the update string's
Code:
SQL_UpdateString(index, "PlayerVehicleModel1",PlayerInfo[playerid][PlayerVehicleModel1]);
SQL_UpdateFloat(index, "PlayerVehicleFacing1",PlayerInfo[playerid][PlayerVehicleFacing1]);
SQL_UpdateInt(index, "PlayerVehicle1Color",PlayerInfo[playerid][pPlayerVehicle1Color]);
SQL_UpdateInt(index, "PlayerVehicle1Color2",PlayerInfo[playerid][pPlayerVehicle1Color2]);
SQL_UpdateFloat(index, "PlayerVehiclePosX1",PlayerInfo[playerid][PlayerVehiclePosX1]);
SQL_UpdateFloat(index, "PlayerVehiclePosY1",PlayerInfo[playerid][PlayerVehiclePosY1]);
SQL_UpdateFloat(index, "PlayerVehiclePosZ1",PlayerInfo[playerid][PlayerVehiclePosZ1]);
SQL_UpdateInt(index, "PlayerVehicle1PaintJob",PlayerInfo[playerid][PlayerVehicle1PaintJob]);
SQL_UpdateInt(index, "PlayerVehicle1Nos",PlayerInfo[playerid][PlayerVehicle1Nos]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot0",PlayerInfo[playerid][PlayerVehicle1ModSlot0]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot1",PlayerInfo[playerid][PlayerVehicle1ModSlot1]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot2",PlayerInfo[playerid][PlayerVehicle1ModSlot2]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot3",PlayerInfo[playerid][PlayerVehicle1ModSlot3]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot4",PlayerInfo[playerid][PlayerVehicle1ModSlot4]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot5",PlayerInfo[playerid][PlayerVehicle1ModSlot5]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot6",PlayerInfo[playerid][PlayerVehicle1ModSlot6]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot7",PlayerInfo[playerid][PlayerVehicle1ModSlot7]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot8",PlayerInfo[playerid][PlayerVehicle1ModSlot8]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot9",PlayerInfo[playerid][PlayerVehicle1ModSlot9]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot10",PlayerInfo[playerid][PlayerVehicle1ModSlot10]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot11",PlayerInfo[playerid][PlayerVehicle1ModSlot11]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot12",PlayerInfo[playerid][PlayerVehicle1ModSlot12]);
SQL_UpdateInt(index, "PlayerVehicle1ModSlot13",PlayerInfo[playerid][PlayerVehicle1ModSlot13]);
SQL_UpdateInt(index, "VehLock1",PlayerInfo[playerid][pVehLock1]);
SQL_UpdateInt(index, "VehLocked1",PlayerInfo[playerid][pVehLocked1]);
SQL_UpdateInt(index, "PlayerVehicle1Interior",PlayerInfo[playerid][PlayerVehicle1Interior]);
SQL_UpdateInt(index, "PlayerVehicle1VirWorld",PlayerInfo[playerid][PlayerVehicle1VirWorld]);
SQL_UpdateInt(index, "PlayerVehicleModel2",PlayerInfo[playerid][PlayerVehicleModel2]);
SQL_UpdateFloat(index, "PlayerVehicleFacing2",PlayerInfo[playerid][PlayerVehicleFacing2]);
SQL_UpdateInt(index, "PlayerVehicle2Color",PlayerInfo[playerid][pPlayerVehicle2Color]);
SQL_UpdateInt(index, "PlayerVehicle2Color2",PlayerInfo[playerid][pPlayerVehicle2Color2]);
SQL_UpdateFloat(index, "PlayerVehiclePosX2",PlayerInfo[playerid][PlayerVehiclePosX2]);
SQL_UpdateFloat(index, "PlayerVehiclePosY2",PlayerInfo[playerid][PlayerVehiclePosY2]);
SQL_UpdateFloat(index, "PlayerVehiclePosZ2",PlayerInfo[playerid][PlayerVehiclePosZ2]);
SQL_UpdateInt(index, "PlayerVehicle2PaintJob",PlayerInfo[playerid][PlayerVehicle2PaintJob]);
SQL_UpdateInt(index, "PlayerVehicle2Nos",PlayerInfo[playerid][PlayerVehicle2Nos]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot0",PlayerInfo[playerid][PlayerVehicle2ModSlot0]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot1",PlayerInfo[playerid][PlayerVehicle2ModSlot1]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot2",PlayerInfo[playerid][PlayerVehicle2ModSlot2]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot3",PlayerInfo[playerid][PlayerVehicle2ModSlot3]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot4",PlayerInfo[playerid][PlayerVehicle2ModSlot4]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot5",PlayerInfo[playerid][PlayerVehicle2ModSlot5]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot6",PlayerInfo[playerid][PlayerVehicle2ModSlot6]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot7",PlayerInfo[playerid][PlayerVehicle2ModSlot7]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot8",PlayerInfo[playerid][PlayerVehicle2ModSlot8]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot9",PlayerInfo[playerid][PlayerVehicle2ModSlot9]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot10",PlayerInfo[playerid][PlayerVehicle2ModSlot10]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot11",PlayerInfo[playerid][PlayerVehicle2ModSlot11]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot12",PlayerInfo[playerid][PlayerVehicle2ModSlot12]);
SQL_UpdateInt(index, "PlayerVehicle2ModSlot13",PlayerInfo[playerid][PlayerVehicle2ModSlot13]);
SQL_UpdateInt(index, "VehLock2",PlayerInfo[playerid][pVehLock2]);
SQL_UpdateInt(index, "VehLocked2",PlayerInfo[playerid][pVehLocked2]);
SQL_UpdateInt(index, "PlayerVehicle2Interior",PlayerInfo[playerid][PlayerVehicle2Interior]);
SQL_UpdateInt(index, "PlayerVehicle2VirWorld",PlayerInfo[playerid][PlayerVehicle2VirWorld]);
SQL_UpdateInt(index, "PlayerVehicleModel3",PlayerInfo[playerid][PlayerVehicleModel3]);
SQL_UpdateFloat(index, "PlayerVehicleFacing3",PlayerInfo[playerid][PlayerVehicleFacing3]);
SQL_UpdateInt(index, "PlayerVehicle3Color",PlayerInfo[playerid][pPlayerVehicle3Color]);
SQL_UpdateInt(index, "PlayerVehicle3Color2",PlayerInfo[playerid][pPlayerVehicle3Color2]);
SQL_UpdateFloat(index, "PlayerVehiclePosX3",PlayerInfo[playerid][PlayerVehiclePosX3]);
SQL_UpdateFloat(index, "PlayerVehiclePosY3",PlayerInfo[playerid][PlayerVehiclePosY3]);
SQL_UpdateFloat(index, "PlayerVehiclePosZ3",PlayerInfo[playerid][PlayerVehiclePosZ3]);
SQL_UpdateInt(index, "PlayerVehicle3PaintJob",PlayerInfo[playerid][PlayerVehicle3PaintJob]);
SQL_UpdateInt(index, "PlayerVehicle3Nos",PlayerInfo[playerid][PlayerVehicle3Nos]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot0",PlayerInfo[playerid][PlayerVehicle3ModSlot0]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot1",PlayerInfo[playerid][PlayerVehicle3ModSlot1]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot2",PlayerInfo[playerid][PlayerVehicle3ModSlot2]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot3",PlayerInfo[playerid][PlayerVehicle3ModSlot3]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot4",PlayerInfo[playerid][PlayerVehicle3ModSlot4]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot5",PlayerInfo[playerid][PlayerVehicle3ModSlot5]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot6",PlayerInfo[playerid][PlayerVehicle3ModSlot6]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot7",PlayerInfo[playerid][PlayerVehicle3ModSlot7]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot8",PlayerInfo[playerid][PlayerVehicle3ModSlot8]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot9",PlayerInfo[playerid][PlayerVehicle3ModSlot9]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot10",PlayerInfo[playerid][PlayerVehicle3ModSlot10]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot11",PlayerInfo[playerid][PlayerVehicle3ModSlot11]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot12",PlayerInfo[playerid][PlayerVehicle3ModSlot12]);
SQL_UpdateInt(index, "PlayerVehicle3ModSlot13",PlayerInfo[playerid][PlayerVehicle3ModSlot13]);
SQL_UpdateInt(index, "VehLock3",PlayerInfo[playerid][pVehLock3]);
SQL_UpdateInt(index, "VehLocked3",PlayerInfo[playerid][pVehLocked3]);
SQL_UpdateInt(index, "PlayerVehicle3Interior",PlayerInfo[playerid][PlayerVehicle3Interior]);
SQL_UpdateInt(index, "PlayerVehicle3VirWorld",PlayerInfo[playerid][PlayerVehicle3VirWorld]);
SQL_UpdateInt(index, "PlayerVehicleModel4",PlayerInfo[playerid][PlayerVehicleModel4]);
SQL_UpdateFloat(index, "PlayerVehicleFacing4",PlayerInfo[playerid][PlayerVehicleFacing4]);
SQL_UpdateInt(index, "PlayerVehicle4Color",PlayerInfo[playerid][pPlayerVehicle4Color]);
SQL_UpdateInt(index, "PlayerVehicle4Color2",PlayerInfo[playerid][pPlayerVehicle4Color2]);
SQL_UpdateFloat(index, "PlayerVehiclePosX4",PlayerInfo[playerid][PlayerVehiclePosX4]);
SQL_UpdateFloat(index, "PlayerVehiclePosY4",PlayerInfo[playerid][PlayerVehiclePosY4]);
SQL_UpdateFloat(index, "PlayerVehiclePosZ4",PlayerInfo[playerid][PlayerVehiclePosZ4]);
SQL_UpdateInt(index, "PlayerVehicle4PaintJob",PlayerInfo[playerid][PlayerVehicle4PaintJob]);
SQL_UpdateInt(index, "PlayerVehicle4Nos",PlayerInfo[playerid][PlayerVehicle4Nos]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot0",PlayerInfo[playerid][PlayerVehicle4ModSlot0]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot1",PlayerInfo[playerid][PlayerVehicle4ModSlot1]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot2",PlayerInfo[playerid][PlayerVehicle4ModSlot2]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot3",PlayerInfo[playerid][PlayerVehicle4ModSlot3]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot4",PlayerInfo[playerid][PlayerVehicle4ModSlot4]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot5",PlayerInfo[playerid][PlayerVehicle4ModSlot5]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot6",PlayerInfo[playerid][PlayerVehicle4ModSlot6]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot7",PlayerInfo[playerid][PlayerVehicle4ModSlot7]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot8",PlayerInfo[playerid][PlayerVehicle4ModSlot8]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot9",PlayerInfo[playerid][PlayerVehicle4ModSlot9]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot10",PlayerInfo[playerid][PlayerVehicle4ModSlot10]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot11",PlayerInfo[playerid][PlayerVehicle4ModSlot11]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot12",PlayerInfo[playerid][PlayerVehicle4ModSlot12]);
SQL_UpdateInt(index, "PlayerVehicle4ModSlot13",PlayerInfo[playerid][PlayerVehicle4ModSlot13]);
SQL_UpdateInt(index, "VehLock4",PlayerInfo[playerid][pVehLock4]);
SQL_UpdateInt(index, "VehLocked4",PlayerInfo[playerid][pVehLocked4]);
SQL_UpdateInt(index, "PlayerVehicle4Interior",PlayerInfo[playerid][PlayerVehicle4Interior]);
SQL_UpdateInt(index, "PlayerVehicle4VirWorld",PlayerInfo[playerid][PlayerVehicle4VirWorld]);
SQL_UpdateInt(index, "PlayerVehicleModel5",PlayerInfo[playerid][PlayerVehicleModel5]);
SQL_UpdateFloat(index, "PlayerVehicleFacing5",PlayerInfo[playerid][PlayerVehicleFacing5]);
SQL_UpdateInt(index, "PlayerVehicle5Color",PlayerInfo[playerid][pPlayerVehicle5Color]);
SQL_UpdateInt(index, "PlayerVehicle5Color2",PlayerInfo[playerid][pPlayerVehicle5Color2]);
SQL_UpdateFloat(index, "PlayerVehiclePosX5",PlayerInfo[playerid][PlayerVehiclePosX5]);
SQL_UpdateFloat(index, "PlayerVehiclePosY5",PlayerInfo[playerid][PlayerVehiclePosY5]);
SQL_UpdateFloat(index, "PlayerVehiclePosZ5",PlayerInfo[playerid][PlayerVehiclePosZ5]);
SQL_UpdateInt(index, "PlayerVehicle5PaintJob",PlayerInfo[playerid][PlayerVehicle5PaintJob]);
SQL_UpdateInt(index, "PlayerVehicle5Nos",PlayerInfo[playerid][PlayerVehicle5Nos]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot0",PlayerInfo[playerid][PlayerVehicle5ModSlot0]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot1",PlayerInfo[playerid][PlayerVehicle5ModSlot1]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot2",PlayerInfo[playerid][PlayerVehicle5ModSlot2]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot3",PlayerInfo[playerid][PlayerVehicle5ModSlot3]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot4",PlayerInfo[playerid][PlayerVehicle5ModSlot4]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot5",PlayerInfo[playerid][PlayerVehicle5ModSlot5]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot6",PlayerInfo[playerid][PlayerVehicle5ModSlot6]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot7",PlayerInfo[playerid][PlayerVehicle5ModSlot7]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot8",PlayerInfo[playerid][PlayerVehicle5ModSlot8]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot9",PlayerInfo[playerid][PlayerVehicle5ModSlot9]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot10",PlayerInfo[playerid][PlayerVehicle5ModSlot10]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot11",PlayerInfo[playerid][PlayerVehicle5ModSlot11]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot12",PlayerInfo[playerid][PlayerVehicle5ModSlot12]);
SQL_UpdateInt(index, "PlayerVehicle5ModSlot13",PlayerInfo[playerid][PlayerVehicle5ModSlot13]);
Code:
stock SQL_PrepareUpdate(name[])
{
new index = -1;
for (new i = 0; i < MAX_UPDATED_QUERIES; i ++)
{
if (!E_QUERY_EXISTS[i])
{
index = i;
break;
}
}
if (index != -1)
{
format(E_QUERY_DATA[index], 2048, "UPDATE `Accounts` SET ");
E_QUERY_POSITION[index] = strlen(E_QUERY_DATA[index]);
E_QUERY_EXISTS[index] = true;
strpack(E_QUERY_NAME[index], name);
}
return index;
}
stock SQL_UpdateInt(index, field[], value)
{
if ((index >= 0 && index < MAX_UPDATED_QUERIES) && E_QUERY_EXISTS[index])
{
new string[24];
format(string, sizeof(string), "%d", value);
return SQL_UpdateString(index, field, string);
}
return 0;
}
stock SQL_UpdateFloat(index, field[], Float:value)
{
if ((index >= 0 && index < MAX_UPDATED_QUERIES) && E_QUERY_EXISTS[index])
{
new string[24];
format(string, sizeof(string), "%.4f", value);
return SQL_UpdateString(index, field, string);
}
return 0;
}
stock SQL_UpdateString(index, field[], value[])
{
if ((index >= 0 && index < MAX_UPDATED_QUERIES) && E_QUERY_EXISTS[index])
{
new string[128], File:file;
format(string, sizeof(string), "`%s` = '%s', ", field, DB_Escape(value));
if ((strlen(E_QUERY_DATA[index]) + strlen(string)) >= sizeof(E_QUERY_DATA[]))
{
new name[24];
strunpack(name, E_QUERY_NAME[index]);
printf("Warning: Update data buffer trying to exceed %d/%d characters (name: %s, field: %s)", strlen(E_QUERY_DATA[index]), sizeof(E_QUERY_DATA[]), name);
return 0;
}
strins(E_QUERY_DATA[index], string, E_QUERY_POSITION[index]);
file = fopen("fields.ini", io_readwrite);
if (file || !fexist("fields.ini"))
{
new bool:found;
if (!fexist("fields.ini"))
{
found = false;
file = fopen("fields.ini", io_append);
}
else
{
while (fread(file, string, sizeof(string)))
{
if (strcmp(string, field, false, strlen(field)) == 0)
{
found = true;
break;
}
}
}
if (!found)
{
format(string, sizeof(string), "ALTER TABLE `Accounts` ADD COLUMN `%s` DEFAULT 0", field);
db_query(AccountDB, string);
fwrite(file, field);
fwrite(file, "\r\n");
}
fclose(file);
}
return 1;
}
return 0;
stock SQL_Update(index)
{
if ((index >= 0 && index < MAX_UPDATED_QUERIES) && E_QUERY_EXISTS[index])
{
new name[24], length = strlen(E_QUERY_DATA[index]);
strunpack(name, E_QUERY_NAME[index]);
strdel(E_QUERY_DATA[index], length - 2, length);
format(E_QUERY_DATA[index], sizeof(E_QUERY_DATA[]), "%s WHERE `Username` = '%s'", E_QUERY_DATA[index], name);
db_query(AccountDB, E_QUERY_DATA[index]);
strdel(E_QUERY_DATA[index], 0, strlen(E_QUERY_DATA[index]));
E_QUERY_EXISTS[index] = false;
E_QUERY_POSITION[index] = 0;
strdel(E_QUERY_NAME[index], 0, 6);
return 1;
}
return 0;
}
}
Would you mind to show us: SQL_UpdateString, SQL_UpdateInt and SQL_UpdateFloat?
Also inserted the update formats that have been used in parts of the scripts to let it save to the DB
I read your functions and I can't seem to find the problem. I'm sorry, but if it was with the normal way most people use SQLite I'd be happy to help you.