MYSQL Saving
#1

PHP код:
///mysql start
forward OnPlayerSave(playerid);
public 
OnPlayerSave(playerid)
{
    new 
query[500];
    if(
IsLoggedIn[playerid] == && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        
mysql_format(MySQLConquerysizeof(query), "UPDATE `players` SET `Admin`=%d, `Vip`=%d, `Money`=%d, `Score`=%d, `Deaths`=%d, `Kills`=%d, `HitsCompleted`=%d, `SkinID`=%d, `Robbed`=%d, `RobbedMoney`=%d, `GotRobbed`=%d, `GotRobbedMoney`=%d, `StoreRobbed`=%d, `StoreRobbedMoney`=%d, `FoodPurchased`=%d, `FoodPurchasedMoney`=%d, `WeaponsPurchased`=%d, `WeaponsPurchasedMoney`=%d, `Healed`=%d, `Arrest`=%d, `Busted`=%d, `Crimes`=%d, `WantedLevel`=%d, `Drugs`=%d, `Medical`=%d WHERE `ID`=%d AND `user`='%e'",
        
pInfo[playerid][pAdmin],
        
pInfo[playerid][pVip],
        
GetPlayerMoney(playerid),
        
GetPlayerScore(playerid),
        
pInfo[playerid][pDeaths],
        
pInfo[playerid][pKills],
        
pInfo[playerid][pHitsCompleted],
        
GetPlayerSkin(playerid),
        
pInfo[playerid][pRobbed],
        
pInfo[playerid][pRobbedMoney],
        
pInfo[playerid][pGotRobbed],
        
pInfo[playerid][pGotRobbedMoney],
        
pInfo[playerid][pStoreRobbed],
        
pInfo[playerid][pStoreRobbedMoney],
        
pInfo[playerid][pFoodPurchased],
        
pInfo[playerid][pFoodPurchasedMoney],
        
pInfo[playerid][pWeaponsPurchased],
        
pInfo[playerid][pWeaponsPurchasedMoney],
        
pInfo[playerid][pHealed],
        
pInfo[playerid][pArrest],
        
pInfo[playerid][pBusted],
        
pInfo[playerid][pCrimes],
        
pInfo[playerid][pWantedLevel],
        
pInfo[playerid][pDrugs],
        
pInfo[playerid][pMedical],
        
pInfo[playerid][pID],
        
PlayerName(playerid));
        
mysql_tquery(MySQLConquery"""");
        print(
query);
    }
    return 
1;

PHP код:
5475) : error 075input line too long (after substitutions
Well, I'm sorry. This is my second/thrid threads about it. I'm still stuck at this and not getting and don't know what to do. I have tried many times but still stuck. So, I would be your thankful if you guyz help me and get me out of this problem. Thanks!
Reply
#2

Do it on two queries like this
PHP код:
   new update1[300];
    
format(update1,sizeof(update1),"UPDATE users SET pMoney='%i', pAdmin='%i', pSkin='%i', pScore='%i', pPolice='%i', pGang='%i', pHorseshoes='%i', pDealer='%i', pWarnings='%i' WHERE pName = '%s'",GetPlayerMoney(playerid), PlayerInfo[playerid][pAdmin], GetPlayerSkin(playerid), GetPlayerScore(playerid), PlayerInfo[playerid][pPolice], PlayerInfo[playerid][pGang], PlayerInfo[playerid][pHorseshoes], PlayerInfo[playerid][pDealer], PlayerInfo[playerid][pWarnings], PlayerName(playerid));
    
mysql_query(1update1);
    new 
update2[128];
    
format(update2sizeof(update2), "UPDATE users SET pJob='%i', pHouseID='%i' WHERE pName='%s'"PlayerInfo[playerid][pJob], PlayerInfo[playerid][pHouseID], PlayerName(playerid));
    
mysql_query(1update2); 
Reply
#3

[U] maybe will be help you
PHP код:
///mysql start
forward OnPlayerSave(playerid);
public 
OnPlayerSave(playerid)
{
    new 
query[500];
    if(
IsLoggedIn[playerid] == && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        
format(query,sizeof(query), "UPDATE `players` SET `Admin`=%d, `Vip`=%d, `Money`=%d, `Score`=%d, `Deaths`=%d, `Kills`=%d, `HitsCompleted`=%d, `SkinID`=%d, `Robbed`=%d, `RobbedMoney`=%d, `GotRobbed`=%d, `GotRobbedMoney`=%d,`StoreRobbed`=%d, `StoreRobbedMoney`=%d,",
        
pInfo[playerid][pAdmin],pInfo[playerid][pVip],GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pDeaths],pInfo[playerid][pKills],pInfo[playerid][pHitsCompleted],GetPlayerSkin(playerid),pInfo[playerid][pRobbed],pInfo[playerid][pRobbedMoney],pInfo[playerid][pGotRobbed],pInfo[playerid][pGotRobbedMoney],pInfo[playerid][pStoreRobbed],pInfo[playerid][pStoreRobbedMoney]);
        
        
format(query,sizeof(query), "%s `FoodPurchased`=%d, `FoodPurchasedMoney`=%d, `WeaponsPurchased`=%d, `WeaponsPurchasedMoney`=%d,`Healed`=%d, `Arrest`=%d, `Busted`=%d, `Crimes`=%d, `WantedLevel`=%d, `Drugs`=%d, `Medical`=%d WHERE `ID`=%d AND `user`='%e'",
        
query,pInfo[playerid][pFoodPurchased],pInfo[playerid][pFoodPurchasedMoney],pInfo[playerid][pWeaponsPurchased],pInfo[playerid][pWeaponsPurchasedMoney],pInfo[playerid][pHealed],pInfo[playerid][pArrest],pInfo[playerid][pBusted],pInfo[playerid][pCrimes],pInfo[playerid][pWantedLevel],pInfo[playerid][pDrugs],pInfo[playerid][pMedical],pInfo[playerid][pID],PlayerName(playerid));
        
mysql_tquery(MySQLConquery);
        print(
query);
    }
    return 
1;

[php]
Reply
#4

or use strcat
Reply
#5

i tried to use stract but it doesn't update. Maybe i did wrong. Can you explain with codes?
Reply
#6

Well, I'm test this if it works or what.

PHP код:
  new query[500];
    if(
IsLoggedIn[playerid] == && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        
format(query,sizeof(query), "UPDATE `players` SET `Money`=%d, `Score`=%d",
        
GetPlayerMoney(playerid),GetPlayerScore(playerid));
        
mysql_tquery(MySQLConquery"""");
        
format(query,sizeof(query), "`Medical`=%d WHERE `user`='%e'",
        
pInfo[playerid][pMedical],PlayerName(playerid));
        
mysql_tquery(MySQLConquery"""");
        print(
query);
    } 
it only update MONEY and SCORE. It doesn't update medical. What's wrng? Im trying to split it in two lines . Anyone can tell me how can i do that with stract?
Reply
#7

Your missing a comma after
Код:
`Score`=%d
and before
Код:
`Medical`=%d
Reply
#8

Isn't they are find and same? I can't see i am missing. Can you post code ?

`Score`=%d"
"`Medical`=%d

Where i am missing?

anyways, I updated into stract but it doesn't save.

PHP код:
public OnPlayerSave(playerid)
{
    new 
query[500];
    new 
tmp[64];
    if(
IsLoggedIn[playerid] == && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        
format(querysizeof(query), "UPDATE `players` SET " );
       
        
format(tmpsizeof(tmp), "`Money`=%d, "GetPlayerMoney(playerid) );
        
strcat(querytmp);
        
        
format(tmpsizeof(tmp), "`Score`=%d, "GetPlayerScore(playerid) );
        
strcat(querytmp);
        
        
format(tmpsizeof(tmp), "`Medical`=%d, "pInfo[playerid][pMedical] );
        
strcat(querytmp);
        
        
format(tmpsizeof(tmp), "WHERE `ID`= %d AND `user`= '%e'"pInfo[playerid][pID], PlayerName(playerid) );
        
strcat(querytmp);
        
mysql_tquery(MySQLConquery"""");
    }
    return 
1;

What's wrong with it. It doesn't saving.
Reply
#9

Your previous version was missing a comma, your current version has to much comma's

Try this:
Код:
public OnPlayerSave(playerid)
{
    new query[500];
    if(IsLoggedIn[playerid] == 1 && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        format(query, sizeof(query), 
		"UPDATE `players` SET `Money`='%d', `Score`='%d', `Medical`='%d' WHERE `ID`='%d' AND `user`= '%e'", 
		GetPlayerMoney(playerid), 
		GetPlayerScore(playerid), 
		pInfo[playerid][pMedical],
		pInfo[playerid][pID],
		PlayerName(playerid)
	);
        mysql_tquery(MySQLCon, query, "", "");
    }
    return 1;
}
Comments:
- Not sure what mysql_tquery must be, but pretty sure its a typo, and it should be mysql_query instead.
- "Money" "Score" "Medical" and "ID" columns might not have any capitals, like "user"? double-check the column names if the above doesnt work

Alternatively, you may just want the code you pasted fixed, see the below for that:
Код:
public OnPlayerSave(playerid)
{
    new query[500];
    new tmp[64];
    if(IsLoggedIn[playerid] == 1 && playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
    {
        format(query, sizeof(query), "UPDATE `players` SET " );
       
        format(tmp, sizeof(tmp), "`Money`='%d', ", GetPlayerMoney(playerid) );
        strcat(query, tmp);
        
        format(tmp, sizeof(tmp), "`Score`='%d', ", GetPlayerScore(playerid) );
        strcat(query, tmp);
        
        format(tmp, sizeof(tmp), "`Medical`='%d' ", pInfo[playerid][pMedical] );
        strcat(query, tmp);
        
        format(tmp, sizeof(tmp), "WHERE `ID`= %d AND `user`= '%e'", pInfo[playerid][pID], PlayerName(playerid) );
        strcat(query, tmp);
        mysql_tquery(MySQLCon, query, "", "");
    }
    return 1;
}
Compare the "Money", "Score" and "Medical" lines with the ones from your example, ive added single-quotation marks (') and removed the comma you added too the end of "Medical"
Reply
#10

Dude, I was using this ^^ what you posted but when i add more stats then in the end i get this;

: error 075: input line too long (after substitutions)

That's the reason i want to change it into stract because i can add much as i want.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)