[SOLVED]Bans
#1

Код:
Im making my bans save to a database but I get an error in the my_log:

Код:
[19:29:41] mysql_query("INSERT INTO 'bans' (name, ip, banner, reason, month, day, year) VALUES ('[RG]James','49','[RG]James','dipshit','1','16', '2010'");

[19:29:41] MySQL Query Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''bans' (name, ip, banner, reason, month, day, year) VALUES ('[RG]James','49','[R' at line 1 (Error ID 1064) -> Query returned false (0)
This is my /ban:
pawn Код:
if(strcmp(cmd, "/ban", true) == 0)    {      new giveplayerid;      giveplayerid = ReturnUser(tmp);      new giveplayer[MAX_PLAYER_NAME];      new string[256];        new sendername[MAX_PLAYER_NAME];        new playerip[20];      if(IsPlayerConnected(playerid))      {        tmp = strtok(cmdtext, idx);            if(!strlen(tmp))            {                SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid/PartOfName] [reason]");                return 1;            }            giveplayerid = ReturnUser(tmp);            if (PlayerInfo[playerid][pAdmin] >= 3)            {              if(IsPlayerConnected(giveplayerid))              {                if(giveplayerid != INVALID_PLAYER_ID)                {                      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));                        GetPlayerName(playerid, sendername, sizeof(sendername));                        new length = strlen(cmdtext);                        while ((idx < length) && (cmdtext[idx] <= &#39; '))                        {                            idx++;                        }                        new offset = idx;                        new result[64];                        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))                        {                            result[idx - offset] = cmdtext[idx];                            idx++;                        }                        result[idx - offset] = EOS;                        if(!strlen(result))                        {                            SendClientMessage(playerid, COLOR_RED, "USAGE: /ban [playerid/PartOfName] [reason]");                            return 1;                        }                        format(string, sizeof(string), "In Game Name: %s", giveplayer);                        SendClientMessage(giveplayerid,COLOR_YELLOW,string);                        format(string, sizeof(string), "Who Banned You: %s", sendername);                        SendClientMessage(giveplayerid,COLOR_YELLOW,string);                        BanStats(giveplayerid);                        format(string, sizeof(string), "Take a SS of this (F8) and go to rock-gaming.com");                        SendClientMessage(giveplayerid,COLOR_GREEN,string);                        new year, month,day;                        getdate(year, month, day);                        GetPlayerIp(giveplayerid, playerip, 16);                        new query[128];                        format(query, sizeof(query), "INSERT INTO 'bans' (name, ip, banner, reason, month, day, year) VALUES ('%s','%d','%s','%s','%d','%d', '%d')", giveplayer,playerip,sendername,result,month,day,year);                        mysql_query(query);                        format(string, sizeof(string), " %s was banned by %s, reason: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);                        SendClientMessageToAll(COLOR_YELLOW, string);                        BanLog(string);                        Kick(giveplayerid);                        return 1;                    }                }                else                {                    format(string, sizeof(string), "  %d is not an active player.", giveplayerid);                    SendClientMessage(playerid, COLOR_RED, string);                }            }            else return SendClientMessage(playerid, RED, "ERROR: You are not an admin");        }        return 1;    }
Will this work also? Havent been able to try it:
pawn Код:
new query[265];    new pip[20];    new ip[20];        GetPlayerIp(playerid, pip, 16);        format(query, sizeof(query), "SELECT type FROM 'bans' WHERE ip = '%s'", ip);    if(strcmp(pip, ip) == 1)    {        SendClientMessage(playerid, COLOR_RED, "You Are Banned From This Server");        SendClientMessage(playerid, COLOR_RED, "To Appeal This Ban Please Goto Out Forums");        SendClientMessage(playerid, COLOR_RED, "At http://www.rock-gaming.com[url=http://]");        return 1;    }    if(strcmp(pip, ip) == 0)    {     //other crap here
thanks
Reply
#2

should be `bans` not 'bans'
Reply
#3

The string dosent save the IP for some reason

Comes up as like 49
Reply
#4

Код:
	if(strcmp(pip, ip) == 1)
	{
		SendClientMessage(playerid, COLOR_RED, "You Are Banned From This Server");
		SendClientMessage(playerid, COLOR_RED, "To Appeal This Ban Please Goto Out Forums");
		SendClientMessage(playerid, COLOR_RED, "At www.rock-gaming.com");
		return 1;
	}
strcmp return 0 when the strings are equal,
Reply
#5

yea lol ty

Still though the string of the players IP gets saved wrongly
Reply
#6

Playerip should be a string(%s)..
Try this out:
pawn Код:
format(query, sizeof(query), "INSERT INTO `bans` (`name`, `ip`, `banner`, `reason`, `month`, `day`, `year`) VALUES ('%s','%s','%s','%s','%d','%d','%d')", giveplayer,playerip,sendername,result,month,day,year);
Reply
#7

Okay now my loading is fucked up lol

The log says
Код:
[13:25:02] mysql_query("SELECT ip FROM `bans` WHERE ip = ''"); Return: 1

[13:25:02] mysql_store_result();
and the script has;
pawn Код:
public OnPlayerConnect(playerid)
{
    new query[265];
    new pip[20];
    new ip[20];

    GetPlayerIp(playerid, pip, 16);

    format(query, sizeof(query), "SELECT ip FROM `bans` WHERE ip = '%s'", ip);
    mysql_query(query);
    mysql_store_result();
    if(strcmp(pip, ip) == 0)
    {
        SendClientMessage(playerid, COLOR_RED, "You Are Banned From This Server");
        SendClientMessage(playerid, COLOR_RED, "To Appeal This Ban Please Goto Out Forums");
        SendClientMessage(playerid, COLOR_RED, "At http://www.rock-gaming.com[url=http://][/url]");
        Kick(playerid);
    }
    else
    {
anyone know why?
Reply
#8

Do it like this:

pawn Код:
public OnPlayerConnect(playerid)
{
    new query[265];
    new ip[20];

    GetPlayerIp(playerid, ip, 16);

    format(query, sizeof(query), "SELECT ip FROM `bans` WHERE ip = '%s'", ip);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
        SendClientMessage(playerid, COLOR_RED, "You Are Banned From This Server");
        SendClientMessage(playerid, COLOR_RED, "To Appeal This Ban Please Goto Out Forums");
        SendClientMessage(playerid, COLOR_RED, "At http://www.rock-gaming.com[url=http://][/url]");
        Kick(playerid);
    }
    else
    {
(Assuming mysql_num_rows() is the function to get the amount of rows retrieved)
Reply
#9

Yes thanks got it
Reply
#10

SAGE, who are you? Why do you have Rock Gaming code?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)