Using an array to save this...
#1

Guys... Is it possible to use an array to save a players weapon data into a MySQL database? Instead of doing this...

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapon1` = %d, `Weapon2` = %d, `Weapon3` = %d, `Weapon4` = %d, `Weapon5` = %d, `Weapon6` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][1], PlayerStatistics[playerid][pWeapons][2], PlayerStatistics[playerid][pWeapons][3], PlayerStatistics[playerid][pWeapons][4], PlayerStatistics[playerid][pWeapons][5], PlayerStatistics[playerid][pWeapons][6], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapon7` = %d, `Weapon8` = %d, `Weapon9` = %d, `Weapon10` = %d, `Weapon11` = %d, `Weapon12` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][7], PlayerStatistics[playerid][pWeapons][8], PlayerStatistics[playerid][pWeapons][9], PlayerStatistics[playerid][pWeapons][10], PlayerStatistics[playerid][pWeapons][11], PlayerStatistics[playerid][pWeapons][12], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Ammo1` = %d, `Ammo2` = %d, `Ammo3` = %d, `Ammo4` = %d, `Ammo5` = %d, `Ammo6` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pAmmo][1], PlayerStatistics[playerid][pAmmo][2], PlayerStatistics[playerid][pAmmo][3], PlayerStatistics[playerid][pAmmo][4], PlayerStatistics[playerid][pAmmo][5], PlayerStatistics[playerid][pAmmo][6], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Ammo7` = %d, `Ammo8` = %d, `Ammo9` = %d, `Ammo10` = %d, `Ammo11` = %d, `Ammo12` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pAmmo][7], PlayerStatistics[playerid][pAmmo][8], PlayerStatistics[playerid][pAmmo][9], PlayerStatistics[playerid][pAmmo][10], PlayerStatistics[playerid][pAmmo][11], PlayerStatistics[playerid][pAmmo][12], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Possibly do something like this...

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapons[x]` = %d AND `Ammo[x]` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Also... Would it be best to check for a "Username" and remove "UserID" completely out of my system?
Reply
#2

Quote:
Originally Posted by RealCop228
Посмотреть сообщение
Guys... Is it possible to use an array to save a players weapon data into a MySQL database? Instead of doing this...

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapon1` = %d, `Weapon2` = %d, `Weapon3` = %d, `Weapon4` = %d, `Weapon5` = %d, `Weapon6` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][1], PlayerStatistics[playerid][pWeapons][2], PlayerStatistics[playerid][pWeapons][3], PlayerStatistics[playerid][pWeapons][4], PlayerStatistics[playerid][pWeapons][5], PlayerStatistics[playerid][pWeapons][6], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapon7` = %d, `Weapon8` = %d, `Weapon9` = %d, `Weapon10` = %d, `Weapon11` = %d, `Weapon12` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][7], PlayerStatistics[playerid][pWeapons][8], PlayerStatistics[playerid][pWeapons][9], PlayerStatistics[playerid][pWeapons][10], PlayerStatistics[playerid][pWeapons][11], PlayerStatistics[playerid][pWeapons][12], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Ammo1` = %d, `Ammo2` = %d, `Ammo3` = %d, `Ammo4` = %d, `Ammo5` = %d, `Ammo6` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pAmmo][1], PlayerStatistics[playerid][pAmmo][2], PlayerStatistics[playerid][pAmmo][3], PlayerStatistics[playerid][pAmmo][4], PlayerStatistics[playerid][pAmmo][5], PlayerStatistics[playerid][pAmmo][6], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Ammo7` = %d, `Ammo8` = %d, `Ammo9` = %d, `Ammo10` = %d, `Ammo11` = %d, `Ammo12` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pAmmo][7], PlayerStatistics[playerid][pAmmo][8], PlayerStatistics[playerid][pAmmo][9], PlayerStatistics[playerid][pAmmo][10], PlayerStatistics[playerid][pAmmo][11], PlayerStatistics[playerid][pAmmo][12], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Possibly do something like this...

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapons[x]` = %d AND `Ammo[x]` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x], PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Also... Would it be best to check for a "Username" and remove "UserID" completely out of my system?
Do you mean something like this

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapons%d` = %d AND `Ammo%d` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][x], x, PlayerStatistics[playerid][pAmmo][x], x, PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Or you could save it all into a single field and use sscanf to split it.
Reply
#3

Quote:
Originally Posted by [HiC]TheKiller
Посмотреть сообщение
Do you mean something like this

pawn Код:
stock SavePlayerWeapons(playerid)
{
    if(PlayerStatistics[playerid][pAuth] == 1)
    {
        for(new x = 0; x < 12; x++)
        {
            GetPlayerWeaponData(playerid, x, PlayerStatistics[playerid][pWeapons][x], PlayerStatistics[playerid][pAmmo][x]);

            format(Query, sizeof(Query), "UPDATE `Accounts` SET `Weapons%d` = %d AND `Ammo%d` = %d WHERE `UserID` = %d", PlayerStatistics[playerid][pWeapons][x], x, PlayerStatistics[playerid][pAmmo][x], x, PlayerStatistics[playerid][pDatabaseID]);
            mysql_query(Query);
        }
    }
    return 1;
}
Or you could save it all into a single field and use sscanf to split it.
Could you elaborate a little more on the sscanf part?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)