Because the plugin does not know that you made a change on the website.
Here's what is happening:
In the game, player gets gGolds[ id ] = 100
php site changes this player golds to 200
On map change, player disconnects and it saves whatever is held in gGolds[] (100). It does not know that you changed the golds to 200 on the php.
Maybe you should create 2 variables to store golds. One stores all golds, other stores golds for just the connection. Then in the SQL save query, do:
formatex(szTemp,charsmax(szTemp),"UPDATE save_golds SET Golds = Golds + %i WHERE `SteamID` = '%s';", gCurrentGolds[ id ] , g_szAuthID[ id ] )
gCurrentGolds[id] is set to 0 on connect and it does not get loaded from database.