SA-MP Forums Archive
MySQL problem - 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: MySQL problem (/showthread.php?tid=373283)



MySQL problem - Tika Spic - 29.08.2012

Ok so here is my problem... I am trying to make a MySQL system but I am a newbie at MySQL and so I don't know how to get around that well... At first the script worked fine, it was saving accounts in the database etc. But i added 3 new parameters (organisation, leader, and rank) and then it just wouldn't save anymore ... I think the problem is in the query's (from what i know they are in charge of writing/reading the database...).

At first I thought that the string size wasn't big enough (it was 200) so I made it 1600 just to check and still nothing ... here are all the querys I have in the gamemode, and i would be greatfull if someone could find the problem and tell me how to solve it...

This is on OnGameModeInit (checks if there is a table present and if not creates it (thats what i read in the tut )
Код:
mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(41), level INT(20), money INT(20), admin INT(5), skin INT(3), org INT(2), lider INT(2), rank INT(2), IP VARCHAR(16) )");
I believe that this one is for checking the last IP (for the auto-login)
Код:
new query[1600], pname[24];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", pname); 
    mysql_query(query);
This one is for updating the database (i guess)
Код:
new level = GetPlayerScore(playerid);
        new money = GetPVarInt(playerid, "Novac");
        new admin = GetPVarInt(playerid, "Admin");
        new skin = GetPVarInt(playerid, "Skin");
        new org = GetPVarInt(playerid, "Org");
        new lider = GetPVarInt(playerid, "Lider");
        new rank = GetPVarInt(playerid, "Rank");
        new query[1600], pname[24];
        GetPlayerName(playerid, pname, 24);
        format(query, sizeof(query), "UPDATE playerdata SET level=%d, money=%d, admin=%d, skin=%d, org=%d, lider=%d, rank=%d WHERE user='%s'", level, money, admin, skin, org, lider, rank, pname);
        mysql_query(query);
This one is in the DialogResponse for the login dialog
Код:
format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", pname, escapepass);
            mysql_query(query);
This one is in the register stock
Код:
format(query, sizeof(query), "INSERT INTO playerdata (user, password, level, money, admin, skin, org, lider, rank, IP) VALUES('%s', SHA1('%s'), 1, 5000, 0, 1, 0, 0, 0, '%s')", pname, passwordstring, IP);
    mysql_query(query);
And this one is in the login stock
Код:
format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", pname);
    mysql_query(query);
thats all the querys in the mod...

Thanks in advance


Re: MySQL problem - Tika Spic - 30.08.2012

BUMP anyone?


Re: MySQL problem - doreto - 30.08.2012

Why you dont show as debug (mysql log) that you can find if you have any error in your querys


Re: MySQL problem - Tika Spic - 30.08.2012

And where do i find it?

EDIT: Thanks for the debug tip i found the error using it and fixed it... by mistake I changed a columbs name in the database...


Re: MySQL problem - Unte99 - 30.08.2012

That's a bad idea.

pawn Код:
new level = GetPlayerScore(playerid);
        new money = GetPVarInt(playerid, "Novac");
        new admin = GetPVarInt(playerid, "Admin");
        new skin = GetPVarInt(playerid, "Skin");
        new org = GetPVarInt(playerid, "Org");
        new lider = GetPVarInt(playerid, "Lider");
        new rank = GetPVarInt(playerid, "Rank");
You should have an enum for player variables. And as doreto said, you could show us the mysql_log file, so that the problem could be solved easier.


Re: MySQL problem - doreto - 30.08.2012

Quote:
Originally Posted by Tika Spic
Посмотреть сообщение
And where do i find it?

EDIT: Thanks for the debug tip i found the error using it and fixed it... by mistake I changed a columbs name in the database...
PHP код:
public OnGameModeInit()
{
    
mysql_debug(1);

check if you have it if not add it make the things that make you problem and show as the debug loc