SA-MP Forums Archive
SetPlayerInfo function (mysql) doesn't work - 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: SetPlayerInfo function (mysql) doesn't work (/showthread.php?tid=229299)



SetPlayerInfo function (mysql) doesn't work - Battleman - 21.02.2011

The function that will set player data doesn't work, and I don't know why.

Anybody

Код:
SetPlayerInfo(playerid, "language", "1", 0);//Set the language (player data) to 1
Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
	if(vartype){
		format(query, sizeof(query), "UPDATE `users` SET '%s' = '%s' WHERE `username` = '%s'", info, newinfo,PlayerName[playerid]);
	}else{
		format(query, sizeof(query), "UPDATE `users` SET '%s' = '%d' WHERE `username` = '%s'", info, newinfo,PlayerName[playerid]);
	}
	printf("SetPlayerInfo %s", query);
	mysql_query(query);
}



Re: SetPlayerInfo function (mysql) doesn't work - JaTochNietDan - 21.02.2011

You're passing it as a string in the format function, when it's supposed to be an integer, you need to use a function like strval. Additionally I would change the SQL syntax slightly, like so:

pawn Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
    if(vartype){
        format(query, sizeof(query), "UPDATE `users` SET %s = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
    }else{
        format(query, sizeof(query), "UPDATE `users` SET %s = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
    }
    printf("SetPlayerInfo %s", query);
    mysql_query(query);
}



Re: SetPlayerInfo function (mysql) doesn't work - Battleman - 21.02.2011

Thanks!

RED text part works now, but the blue text part doesn't work.

Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
    if(vartype){
        format(query, sizeof(query), "UPDATE `users` SET %s = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
    }else{
        format(query, sizeof(query), "UPDATE `users` SET %s = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
    }
    printf("SetPlayerInfo %s", query);
    mysql_query(query);
}
Any idea?


Re: SetPlayerInfo function (mysql) doesn't work - JaTochNietDan - 21.02.2011

What are you using to test it for the blue part?


Re: SetPlayerInfo function (mysql) doesn't work - WackoX - 21.02.2011

Check the MySQL logs?


Re: SetPlayerInfo function (mysql) doesn't work - Antonio [G-RP] - 21.02.2011

From my knowledge, this should fix it.

Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
    if(vartype){
        format(query, sizeof(query), "UPDATE `users` SET `%s` = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
    }else{
        format(query, sizeof(query), "UPDATE `users` SET `%s` = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
    }
    printf("SetPlayerInfo %s", query);
    mysql_query(query);
}



JaTochNietDan - Battleman - 21.02.2011

Quote:
Originally Posted by JaTochNietDan
Посмотреть сообщение
What are you using to test it for the blue part?
SetPlayerInfo(playerid, "reasonofwarn1", "hacks", 1);

My MySQL log file give this error:

[11:11:14] CMySQLHandler::Query(UPDATE `users` SET `secretquestionanwser` = 'henk' WHERE username = '[VLA]Battleman') - An error has occured. (Error ID: 1054, Unknown column 'secretquestionanwser' in 'field list')

[11:11:16] >> mysql_query( Connection handle: 1 )




Re: SetPlayerInfo function (mysql) doesn't work - JaTochNietDan - 22.02.2011

You spelled it differently in table and in the query, in the table it is "answer", which is correct, and in the query it is "anwser", which is wrong, so that column does not exist


Re: SetPlayerInfo function (mysql) doesn't work - Battleman - 22.02.2011

Lol stupid :P

Thanks!