Mysql saving won't work
#1

Well, I made some dialogs such as a race and age dialog. For some reason, they do not save. As the thread shows, I am using mysql. I need help trying to figure out why this won't work. Under OnDialogResponse:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_AGE)
    {
        new string[20], age;
        age = strval(inputtext);
        if(!response) return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age", "Error: You cannot cancel out of this dialog\nPlease specify an age below","Continue","Cancel");
        if(age > 18 && age < 70)
        {
            format(string, sizeof(string), "Your age was set to %i", age);
            SendClientMessage(playerid, COLOR_WHITE, string);
            PlayerInfo[playerid][pAge] = age;
            ShowPlayerDialog(playerid,DIALOG_RACE,DIALOG_STYLE_INPUT, "Race", "Specify a race below! (15 chars)","Continue","Cancel");
        }
        else return SendClientMessage(playerid, COLOR_WHITE, "You must specify an age that is above 18 and below 70");
    }
    if(dialogid == DIALOG_RACE)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_RACE,DIALOG_STYLE_INPUT, "Race", "You must type a race in below!","Continue","Cancel");
        if(strlen(inputtext) < 15 || strlen(inputtext) > 4)
        {
            new string[40];
            format(string, sizeof(string), "Your race was set to %s", inputtext);
            SendClientMessage(playerid, COLOR_WHITE, string);
            format(PlayerInfo[playerid][pRace], 15, "%s", inputtext);
            ShowPlayerDialog(playerid,DIALOG_IMPRISONMENT,DIALOG_STYLE_INPUT, "Imprisonment", "Write why you were imprisoned (20 chars)","Continue","Cancel");
        }
        else return ShowPlayerDialog(playerid,DIALOG_RACE,DIALOG_STYLE_INPUT,"Race", "Your race must be lower then 15 characters long and greater then 4 characters long!","Continue","Cancel");
    }
    if(dialogid == DIALOG_IMPRISONMENT)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_IMPRISONMENT,DIALOG_STYLE_INPUT, "Imprisonment", "You must write why you were imprisoned (20 chars)","Continue","Cancel");
        if(strlen(inputtext) > 4 || strlen(inputtext) < 20)
        {
            new string[45];
            format(string, sizeof(string), "Your reason was set to %s", inputtext);
            SendClientMessage(playerid, COLOR_WHITE, string);
            format(PlayerInfo[playerid][pImprisonment], 20, "%s", inputtext);
            ShowPlayerDialog(playerid,DIALOG_FEATURES,DIALOG_STYLE_INPUT, "Features", "Please write down some physical features of your character","Continue","Cancel");
        }
        else return ShowPlayerDialog(playerid,DIALOG_IMPRISONMENT,DIALOG_STYLE_INPUT, "Imprisonment", "The desired reason must be greater then 4 characters long\n and less then 20 characters","Continue","Cancel");
    }
    if(dialogid == DIALOG_FEATURES)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_IMPRISONMENT,DIALOG_STYLE_INPUT, "Features", "YYou must write some  physical features about your player!","Continue","Cancel");
        if(strlen(inputtext) < 30 || strlen(inputtext) > 10)
        {
            new string[55];
            format(string, sizeof(string), "Features: %s", inputtext);
            SendClientMessage(playerid, COLOR_WHITE, string);
            format(PlayerInfo[playerid][pFeatures], 30, "%s", inputtext);
            SendClientMessage(playerid, COLOR_WHITE, "You have completed the faishdkjasgh");
            SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 );
            SpawnPlayer(playerid);
        }
        else return ShowPlayerDialog(playerid, DIALOG_FEATURES, DIALOG_STYLE_INPUT, "Features", "The features must be less then 30 characters long and greater then 10 characters","Continue","Cancel");
    }
    return 1;
}
And when I go into my phpmyadmin to check my player, the areas are empty.

Thanks in advance if you can help,
Kindred.
Reply
#2

Can you show us the MySQL part please?
Everything look ok there.
Reply
#3

pawn Код:
stock SavePlayer(playerid)
{
    new pname[24], query[600];
    GetPlayerName(playerid, pname, 24);
    GetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
    //mysql_query("UPDATE `playerdata` SET `PositionX` = %d WHERE `user` = 's'", PlayerInfo[playerid][pPosX], pname);
    format(query, sizeof(query), "UPDATE `playerdata` SET `PositionX` = '%f', `PositionY` = '%f', `PositionZ` = '%f', `Admin` = '%i', WHERE `user` = '%s'", PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAdmin], pname);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `playerdata` SET  'Accent' = '%i', 'age' = '%i', 'race' = '%s', 'imprisonment' = '%s', 'features' = '%s', WHERE `user` = '%s'", PlayerInfo[playerid][pAccent], PlayerInfo[playerid][pAge], PlayerInfo[playerid][pRace], PlayerInfo[playerid][pImprisonment], PlayerInfo[playerid][pFeatures], pname);
    mysql_query(query);
    return 1;
}
Saving stock... Is it because i used query twice (I understand that the size is huge, but how do I see how much is needed?)

Picture of the structure:

Reply
#4

Really strange, you're sure you selected the correct table, database, etc. ? =/
Try change these strange quotes (`) with these: '
______________________
EDIT:
pawn Код:
stock SavePlayer(playerid)
{
    new pname[24], query[600];
    GetPlayerName(playerid, pname, 24);
    GetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
    //mysql_query("UPDATE playerdata SET PositionX=%d WHERE user='s'", PlayerInfo[playerid][pPosX], pname);
    format(query, sizeof(query), "UPDATE playerdata SET PositionX=%f, PositionY=%f, PositionZ=%f, Admin=%i, WHERE user='%s'", PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAdmin], pname);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE playerdata SET  Accent=%i, age=%i, race=%s, imprisonment=%s, features=%s, WHERE user='%s'", PlayerInfo[playerid][pAccent], PlayerInfo[playerid][pAge], PlayerInfo[playerid][pRace], PlayerInfo[playerid][pImprisonment], PlayerInfo[playerid][pFeatures], pname);
    mysql_query(query);
    return 1;
}
Try now. My fail, it should work now.
Reply
#5

I am using them -_-
Reply
#6

I just edited the answer, try now.
Reply
#7

Tried and doesn't work. Everything saves OTHER then the stuff that I just made, the age, the imprisonment, etcetra.
Reply
#8

Maybe now:
pawn Код:
stock SavePlayer(playerid)
{
    new pname[24], query[600];
    GetPlayerName(playerid, pname, 24);
    GetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
    //mysql_query("UPDATE playerdata SET PositionX=%d WHERE user='s'", PlayerInfo[playerid][pPosX], pname);
    format(query, sizeof(query), "UPDATE playerdata SET PositionX=%f, PositionY=%f, PositionZ=%f, Admin=%i WHERE user='%s'", PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAdmin], pname);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE playerdata SET  Accent=%i, age=%i, race=%s, imprisonment=%s, features=%s WHERE user='%s'", PlayerInfo[playerid][pAccent], PlayerInfo[playerid][pAge], PlayerInfo[playerid][pRace], PlayerInfo[playerid][pImprisonment], PlayerInfo[playerid][pFeatures], pname);
    mysql_query(query);
    return 1;
}
Reply
#9

What did you edit? It looks exactly the same.
Reply
#10

The coma at the end.
Doesn't work?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)