SA-MP Forums Archive
[MySQL] GetPlayerAdminLevel(playerid) - 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)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [MySQL] GetPlayerAdminLevel(playerid) (/showthread.php?tid=256333)



[MySQL] GetPlayerAdminLevel(playerid) - Unknown123 - 20.05.2011

Hi im trying to make a include

pawn Код:
#if defined _test_included
  #endinput
#endif
#define _test_included

#include <mysql>

stock GetPlayerAdminLevel(playerid)
{
    new string[1337], playername[MAX_PLAYER_NAME], PlayerAdminLevel[2];
    GetPlayerName(playerid, playername, sizeof(playername));
   
    format(string, sizeof(string), "SELECT * FROM `Users` WHERE `Name` ='%s'", playername);
    mysql_query(string);
    mysql_store_result();
    if(mysql_num_rows())
    {
        mysql_fetch_field("AdminLevel", PlayerAdminLevel);
    }
    mysql_free_result();
    return PlayerAdminLevel;
}
but it dont get the right admin level, it sais "9" in phpMyAdmin but when i got in-game and test the function it sais "5"

so what are i doing wrong?

(im making a include so i can add it to filterscripts, like Lux Admin)


Re: [MySQL] GetPlayerAdminLevel(playerid) - KoczkaHUN - 20.05.2011

Quote:
new string[1337], playername[MAX_PLAYER_NAME], PlayerAdminLevel[2];
GetPlayerName(playerid, playername, sizeof(playername));

format(string, sizeof(string), "SELECT * FROM `Users` WHERE `Name` ='%s'", playername);

what a waste of cells you use 39 + MAX_PLAYER_NAME = 59 cells max with this query... lol'd

also
Quote:

mysql_fetch_field
Use this function to get name of specific field.

not sure which mysql plugin are you using..

also you may want to return strval(PlayerAdminLevel) instead of a string.

are you sure you want to retrieve all fields? using "SELECT `AdminLevel` [..]" would be more reasonable I think..


Re: [MySQL] GetPlayerAdminLevel(playerid) - Sascha - 20.05.2011

try it with "return strval(PlayerAdminLevel);"


Re: [MySQL] GetPlayerAdminLevel(playerid) - Unknown123 - 20.05.2011

Quote:
Originally Posted by KoczkaHUN
Посмотреть сообщение
what a waste of cells you use 39 + MAX_PLAYER_NAME = 59 cells max with this query... lol'd

also

not sure which mysql plugin are you using..

also you may want to return strval(PlayerAdminLevel) instead of a string.

are you sure you want to retrieve all fields? using "SELECT `AdminLevel` [..]" would be more reasonable I think..
I know it is a waste.. i just typed something there.............................. (1337 = leet u know)

@Sascha - Thanks

Problem solved


Re: [MySQL] GetPlayerAdminLevel(playerid) - steki. - 20.05.2011

Код:
format(string, sizeof(string), "SELECT adminlevel FROM `Users` WHERE `Name` ='%s'", playername);
mysql_query(string);
return string;
No need to select the entire row.


Re: [MySQL] GetPlayerAdminLevel(playerid) - Unknown123 - 20.05.2011

NVM i got it!


Re: [MySQL] GetPlayerAdminLevel(playerid) - KoczkaHUN - 20.05.2011

i am wondering why people type exactly what i have written...


Re: [MySQL] GetPlayerAdminLevel(playerid) - DRIFT_HUNTER - 20.05.2011

pawn Код:
#if defined _test_included
  #endinput
#endif
#define _test_included

#include <mysql>

stock GetPlayerAdminLevel(playerid)
{
    new string[128], playername[MAX_PLAYER_NAME], PlayerAdminLevel;
    //You dont need 1337 string for these...and you off its size bellow
    //Admin level is integer (number) so you dont need it as string
    GetPlayerName(playerid, playername, sizeof(playername));
   
    format(string, sizeof(string), "SELECT * FROM `Users` WHERE `Name` ='%s'", playername);
    mysql_query(string);
    mysql_store_result();
    if(mysql_num_rows())
    {
        //You need to fetch already stored result not to store it to new variable
        mysql_fetch_field("AdminLevel", string);
        PlayerAdminLevel = strval(string);
    }
    mysql_free_result();
    return PlayerAdminLevel;
}