MySQL Query
#1

A recent issue popped up, and I guarantee I've spent a good amount of time trying to solve this myself but I can't seem to figure it out.

In the LoginPlayer function, ID returns as 4 (which is what my database says as well) and is supposed to be saved in the Player[playerid][ID] enumerator. The problem is that "WHERE ID" in the SavePlayer function should be returning '4' but it's returning '0' so it's not updating the correct area of the database. What am I doing wrong?

Here is the code used to log players in:

PHP код:
stock LoginPlayer(playerid)
{
    new 
query[126];
    new 
pName[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
    
format(querysizeof(query), "SELECT * FROM user_accounts WHERE Username = '%s'"pName);
    
mysql_query(query);
    
mysql_store_result();
    
    while(
mysql_fetch_row_format(query"|"))
    {
        
mysql_fetch_field_row(Player[playerid][Username], "Username");
        
mysql_fetch_field_row(Player[playerid][Password], "Password");
        
mysql_fetch_field_row(query"PlayerPos"); sscanf(query"fff"Player[playerid][Position][0], Player[playerid][Position][1], Player[playerid][Position][2]);
        
mysql_fetch_field_row(query"AdminLevel"); Player[playerid][AdminLevel] = strval(query);
        
mysql_fetch_field_row(query"Skin"); Player[playerid][Skin] = strval(query);
        
mysql_fetch_field_row(query"LoggedIn"); Player[playerid][LoggedIn] = strval(query);
        
mysql_fetch_field_row(query"Money"); Player[playerid][Money] = strval(query);
        
mysql_fetch_field_row(query"ID"); Player[playerid][ID] = strval(query);
    }
    
    
GivePlayerMoney(playeridPlayer[playerid][Money]);

And the MySQL debug responses for that area:

Код:
[09:44:10] >> mysql_query( Connection handle: 1 )

[09:44:10] CMySQLHandler::Query(SELECT * FROM bans WHERE (Username = 'Shadow' OR IPAddress = '') AND Status = 1) - Successfully executed.

[09:44:10] >> mysql_store_result( Connection handle: 1 )

[09:44:10] CMySQLHandler::StoreResult() - Result was stored.

[09:44:10] >> mysql_num_rows( Connection handle: 1 )

[09:44:11] CMySQLHandler::NumRows() - Returned 0 row(s)

[09:44:11] >> mysql_free_result( Connection handle: 1 )

[09:44:11] CMySQLHandler::FreeResult() - Result was successfully free'd.

[09:44:11] >> mysql_query( Connection handle: 1 )

[09:44:11] CMySQLHandler::Query(SELECT * FROM user_accounts WHERE Username = 'Shadow') - Successfully executed.

[09:44:11] >> mysql_store_result( Connection handle: 1 )

[09:44:11] CMySQLHandler::StoreResult() - Result was stored.

[09:44:11] >> mysql_num_rows( Connection handle: 1 )

[09:44:11] CMySQLHandler::NumRows() - Returned 0 row(s)

[09:44:13] >> mysql_query( Connection handle: 1 )

[09:44:13] CMySQLHandler::Query(INSERT INTO user_accounts (Username, Password, PlayerPos, Skin) VALUES ('Shadow', '310BB28AC7B16438667836D8EDB887544B49BFC6212BC1A8217F284DBD43D5F2B9ACEF89E6530C9A47B84372EB139044D5AC1D6C33D0227CDF1ADF046CFD7F3D', '1.0 2.0 3.0', '0')) - Successfully executed.

[09:44:13] >> mysql_query( Connection handle: 1 )

[09:44:13] CMySQLHandler::Query(SELECT * FROM user_accounts WHERE Username = 'Shadow') - Successfully executed.

[09:44:13] >> mysql_store_result( Connection handle: 1 )

[09:44:13] CMySQLHandler::StoreResult() - Result was stored.

[09:44:13] >> mysql_fetch_row_format( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchRow() - Return: Shadow|310BB28AC7B16438667836D8EDB887544B49BFC6212BC1A8217F284DBD43D5F2B9ACEF89E6530C9A47B84372EB139044D5AC1D6C33D0227CDF1ADF046CFD7F3D|1.0 2.0 3.0|0|0|0|0|4

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("Username") - Shadow

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("Password") - 310BB28AC7B16438667836D8EDB887544B49BFC6212BC1A8217F284DBD43D5F2B9ACEF89E6530C9A47B84372EB139044D5AC1D6C33D0227CDF1ADF046CFD7F3D

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("PlayerPos") - 1.0 2.0 3.0

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("AdminLevel") - 0

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("Skin") - 0

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("LoggedIn") - 0

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("Money") - 0

[09:44:13] >> mysql_fetch_field_row( Connection handle: 1 )

[09:44:13] CMySQLHandler::FetchField("ID") - 4

[09:44:13] >> mysql_fetch_row_format( Connection handle: 1 )
And here is where the problem is:

PHP код:
stock SavePlayer(playerid)
{
    new 
query[1024];
    new 
EncryptedPass[130];
    
WP_Hash(EncryptedPasssizeof(EncryptedPass), Player[playerid][Password]);
    new 
pName[MAX_PLAYER_NAME];
    
    
GetPlayerName(playeridpNamesizeof(pName));
    
    
Player[playerid][Money] = GetPlayerMoney(playerid);
    
Player[playerid][Skin] = GetPlayerSkin(playerid);
    if( !
IsPlayerConnected(playerid) )
    {
        
Player[playerid][LoggedIn] = 0;
    } else {
        
Player[playerid][LoggedIn] = 1;
    }
    
    
GetPlayerPos(playeridPlayer[playerid][Position][0], Player[playerid][Position][1], Player[playerid][Position][2]);
    
    
format(querysizeof(query), "UPDATE user_accounts SET Username = '%s', Password = '%s', PlayerPos = '%f %f %f', AdminLevel = '%d', Skin = '%d', LoggedIn = '%d', Money = '%d' WHERE ID = '%d'"pNameEncryptedPassPlayer[playerid][Position][0], Player[playerid][Position][1], Player[playerid][Position][2], Player[playerid][AdminLevel], Player[playerid][Skin], Player[playerid][LoggedIn], Player[playerid][Money], Player[playerid][ID]);
    
mysql_query(query);
    
printf("Player ID %d (%s) has been updated"playeridpName);

And the corresponding MySQL debug response:

Код:
[09:45:11] >> mysql_query( Connection handle: 1 )

[09:45:11] CMySQLHandler::Query(UPDATE user_accounts SET Username = 'Shadow', Password = '19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3', PlayerPos = '2075.546386 2036.309204 10.820312', AdminLevel = '0', Skin = '2', LoggedIn = '1', Money = '0' WHERE ID = '0') - Successfully executed.
Reply


Messages In This Thread
MySQL Query - by GXLZPGX - 01.09.2015, 13:52
Re: MySQL Query - by BleverCastard - 01.09.2015, 14:20
Re: MySQL Query - by JeaSon - 01.09.2015, 14:23
Re: MySQL Query - by GXLZPGX - 01.09.2015, 14:56

Forum Jump:


Users browsing this thread: 3 Guest(s)