[Ajuda] Problema com MySQL
#1

Estou tentando criar um sistema de registro e login com MySQL, porйm, estou tendo um pequeno problema com salvamento de dados.

Quando eu crio uma conta, me aparece uma janela para colocar minha senha, logo apуs, uma para selecionar a minha origem, e depois o meu sexo.
Quando eu registro, a conta й criada no banco de dados, porйm, por conta da Origem, os dados nгo sгo salvos

Eu removi as linhas na qual selecionaria a origem do personagem, e funcionou
Alguйm sabe como resolver?

Print sem as linhas da origem:


Print com as linhas da origem:


Code:
PHP код:
enum playerData {
    
pID,
    
pPassword[129],
    
pSkin,
    
pGender,
    
pOrigin[64],
    
FloatpPos[4]
}; 
PHP код:
forward OnAccountLoad(playerid);
public 
OnAccountLoad(playerid)
{
    
cache_get_value_int(0"ID"PlayerData[playerid][pID]);
    
cache_get_value_int(0"Skin"PlayerData[playerid][pSkin]);
    
cache_get_value(0"Origin"PlayerData[playerid][pOrigin]);
    
    
cache_get_value_int(0"Gender"PlayerData[playerid][pGender]);
    
cache_get_value_float(0"PosX"PlayerData[playerid][pPos][0]);
    
cache_get_value_float(0"PosY"PlayerData[playerid][pPos][1]);
    
cache_get_value_float(0"PosZ"PlayerData[playerid][pPos][2]);
    
cache_get_value_float(0"PosA"PlayerData[playerid][pPos][3]);
    
    
SetSpawnInfo(playeridNO_TEAMPlayerData[playerid][pSkin], PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2], PlayerData[playerid][pPos][3], 000000);
    
SpawnPlayer(playerid);
    return 
1;

PHP код:
forward OnAccountRegister(playerid);
public 
OnAccountRegister(playerid)
{
    
PlayerData[playerid][pID] = cache_insert_id();
    
PlayerData[playerid][pPos][0] = 1958.3783;
    
PlayerData[playerid][pPos][1] = 1343.1572;
    
PlayerData[playerid][pPos][2] = 15.3746;
    
PlayerData[playerid][pPos][3] = 270.1425;
    
Dialog_Show(playeridOriginDIALOG_STYLE_INPUT"Origem""Para que seja incrementado em sua identidade, precisamos saber sua origem.\n\n{FF6347}Digite abaixo a origem de seu personagem:""Pronto""");
    return 
1;

PHP код:
UpdatePlayerData(playerid)
{
    new
        
query[2580];
    if (
GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
    {
        
GetPlayerPos(playeridPlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2]);
        
GetPlayerFacingAngle(playeridPlayerData[playerid][pPos][3]);
    }
    
format(querysizeof query"UPDATE `accounts` SET `Gender` = %d, `Origin`= %e",
    
PlayerData[playerid][pGender], PlayerData[playerid][pOrigin]);
    
    
format(querysizeof query"%s, `Skin` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = %d LIMIT 1",
    
queryPlayerData[playerid][pSkin], PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2], PlayerData[playerid][pPos][3], PlayerData[playerid][pID]);
    
mysql_tquery(MySQLquery);
    return 
1;

PHP код:
Dialog:RegisterScreen(playeridresponselistiteminputtext[])
{
    if (
response)
    {
        if(
strlen(inputtext) < 6) {
            
SendClientMessageEx(playeridCOLOR_LIGHTRED"Vocк digitou uma senha invбlida (mнnimo 7 caracteres).");
            
Dialog_Show(playeridRegisterScreenDIALOG_STYLE_PASSWORD"Californa Roleplay | Registro""Olб, %s.\nSeja bem vindo ao Califуrnia Roleplay!\n\nInformaзгo: Sua conta ainda nгo estб registrada em nosso servidor, portanto, digite uma senha abaixo para registrar-se:""Registrar""Sair"playerName[playerid]);
        }
        new
            
query[2580];
        
WP_Hash(PlayerData[playerid][pPassword], 129inputtext);
        
mysql_format(MySQLquerysizeof(query), "INSERT INTO `accounts` (`Username`, `Password`, `Gender`, `Origin`, `Skin`, `PosX`, `PosY`,`PosZ`, `PosA`) VALUES ('%e', '%s', '0', 'None', '0', '0.0', '0.0', '0.0', '0.0')"playerName[playerid], PlayerData[playerid][pPassword]);
        
mysql_tquery(MySQLquery"OnAccountRegister""i"playerid);
    } else {
        
Kick(playerid);
    }
    return 
1;

PHP код:
Dialog:Origin(playeridresponselistiteminputtext[])
{
    if (
response)
    {
        if (
isnull(inputtext) || strlen(inputtext) > 32) {
            
Dialog_Show(playeridOriginDIALOG_STYLE_INPUT"Origem""Digite abaixo a origem de seu personagem:""Pronto""");
        }
        else for (new 
0len strlen(inputtext); != len++) {
            if ((
inputtext[i] >= 'A' && inputtext[i] <= 'Z') || (inputtext[i] >= 'a' && inputtext[i] <= 'z') || (inputtext[i] == ' ') || (inputtext[i] == ',') || (inputtext[i] == '.'))
                continue;
            else return 
Dialog_Show(playeridOriginDIALOG_STYLE_INPUT"Origem""Informaзгo: Apenas letras sгo permitidas na origem.\n\nDigite abaixo a origem de seu personagem:""Pronto""");
        }
        
format(PlayerData[playerid][pOrigin], 64inputtext);
        
SendClientMessageEx(playeridCOLOR_LIGHTRED"Sua origem foi definido como: {FFFFFF}%s{FF6347}."PlayerData[playerid][pOrigin]);
        
        
Dialog_Show(playeridGenderDIALOG_STYLE_LIST"Selecione o seu gкnero abaixo:""Masculino\nFeminino""Ok""");
    } else {
        
Dialog_Show(playeridOriginDIALOG_STYLE_INPUT"Origem""Digite abaixo a origem de seu personagem:""Pronto""");
    }
    return 
1;

Reply
#2

Coloque '%e' se nгo for faзa um debug nessa variбvel.
Reply
#3

Quote:
Originally Posted by Felipealves
Посмотреть сообщение
Coloque '%e' se nгo for faзa um debug nessa variбvel.
Jб tentei colocar escaped, mas nгo muda nada
Reply
#4

Adiciona ' ' no %e
Reply
#5

Resolvidooooooo <3
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)