SA-MP Forums Archive
Won't load, - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Won't load, (/showthread.php?tid=313432)



Won't load, - Snowman12 - 25.01.2012

Hey,

I am using MySQL and for some reason my coding is wrong as the things I need to load don't:

pawn Код:
stock LoadUserData(playerid)
{
    new query[101 + MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], savingstring[11];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(query,sizeof(query),"SELECT `Donator`, `AdminLevel`, `Score`, `Zone`, `Money` FROM `Player_Info` WHERE `Username` = '%s'",pname);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query,"|"))
    {
        mysql_fetch_field_row(savingstring,"Donator"); PlayerInfo[playerid][pDonator] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"AdminLevel"); PlayerInfo[playerid][pAdminLevel] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"Score"); SetPlayerScore(playerid, strval(savingstring));
        mysql_fetch_field_row(savingstring,"Zone"); PlayerInfo[playerid][pZone] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"Money"); GivePlayerMoney(playerid, strval(savingstring));
    }
    mysql_free_result();
    return 1;
}
pawn Код:
CMD:login(playerid, params[])
{
    new Password[34];
    if(sscanf(params, "s[34]", Password)) return SendClientMessage(playerid, COLOR_RED, "Error: /login 'password'");
    if(PlayerInfo[playerid][pRegistered] == false) return SendClientMessage(playerid, COLOR_RED, "Error: You are currently not registered");
    if(PlayerInfo[playerid][pLogged] == true) return SendClientMessage(playerid, COLOR_RED, "Error: You are already logged in.");
    else
    {
        new Query[108 + MAX_PLAYER_NAME];
        mysql_real_escape_string(params, Password);

        format(Query, sizeof(Query), "SELECT * FROM `Player_Info` WHERE `Username` = '%s' AND `Password` = '%s'",GetPlayerNameEx(playerid),Password);
        mysql_query(Query);
        mysql_store_result();
       
        if(mysql_num_rows() > 0)
        {
            SendClientMessage(playerid, COLOR_WHITE, "SERVER: You have successfully logged in.");
//          SetTimerEx("LoadData",1000,false,"d",playerid);
            LoadUserData(playerid);
            PlayerInfo[playerid][pLogged] = true;
            DeletePVar(playerid,"InvalidPass");
            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
            SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "Error: You have entered an invalid password please try again.");
            SetPVarInt(playerid, "InvalidPass",GetPVarInt(playerid,"InvalidPass")+1);
            if(GetPVarInt(playerid,"InvalidPass") == 5)
            {
                format(Query,sizeof(Query),"** SERVER KICK: %s has been kicked from the server - Incorrect Login.",GetPlayerNameEx(playerid));
                SendClientMessageToAll(COLOR_PINK, Query);
                Kick(playerid);
            }
        }
    }
    return 1;
}
I'm not sure what's wrong as it shows the mysql as loaded:

Код:
[13:39:36] CMySQLHandler::Query(SELECT `Donator`, `AdminLevel`, `Score`, `Zone`, `Money` FROM `Player_Info` WHERE `Username` = 'DaRkAnGeL[NBK]') - Successfully executed.
[13:39:36] >> mysql_store_result( Connection handle: 1 )
[13:39:36] CMySQLHandler::StoreResult() - Result was stored.
[13:39:36] >> mysql_fetch_row_format( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchRow() - Return: 0|0|3276|1|9832
[13:39:36] >> mysql_fetch_field_row( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchField("Donator") - 0
[13:39:36] >> mysql_fetch_field_row( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchField("AdminLevel") - 0
[13:39:36] >> mysql_fetch_field_row( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchField("Score") - 3276
[13:39:36] >> mysql_fetch_field_row( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchField("Zone") - 1
[13:39:36] >> mysql_fetch_field_row( Connection handle: 1 )
[13:39:36] CMySQLHandler::FetchField("Money") - 9832
Any ideas?

Thanks!


Re: Won't load, - Tanush123 - 26.01.2012

for
pawn Код:
stock LoadUserData(playerid)
{
    new query[101 + MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], savingstring[11];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(query,sizeof(query),"SELECT `Donator`, `AdminLevel`, `Score`, `Zone`, `Money` FROM `Player_Info` WHERE `Username` = '%s'",pname);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query,"|"))
    {
        mysql_fetch_field_row(savingstring,"Donator"); PlayerInfo[playerid][pDonator] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"AdminLevel"); PlayerInfo[playerid][pAdminLevel] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"Score"); SetPlayerScore(playerid, strval(savingstring));
        mysql_fetch_field_row(savingstring,"Zone"); PlayerInfo[playerid][pZone] = strval(savingstring);
        mysql_fetch_field_row(savingstring,"Money"); GivePlayerMoney(playerid, strval(savingstring));
    }
    mysql_free_result();
    return 1;
}
make it into fields
pawn Код:
stock LoadUserData(playerid)
{
    new query[101 + MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], savingstring[11],field[128][128],drow[128];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(query,sizeof(query),"SELECT `Donator`, `AdminLevel`, `Score`, `Zone`, `Money` FROM `Player_Info` WHERE `Username` = '%s'",pname);
    mysql_query(query);
                    mysql_store_result();
                    mysql_fetch_row_format(drow, "|");
                    explode(drow,field, "|");
                    mysql_free_result();
    PlayerInfo[playerid][Donator] = strval(field[0]);
    PlayerInfo[playerid][AdminLevel] = strval(field[1])...
    }
    mysql_free_result();
    return 1;
}
and about your login part try using the same thing