MySQL R38 - UPDATE
#1

Salve pessoal, fiz um sistema de registro/login usando MySQL porйm na hora de salvar os dados no OnPlayerDisconnect nгo consigo de jeito nenhum fazer o UPDATE funcionar. Nгo da erro, porйm nгo salva. Meu OnPlayerDisconnect:
Код:
public OnPlayerDisconnect(playerid)
{
	new salvarPlayerQuery[500];
	mysql_format(conn, salvarPlayerQuery, sizeof(salvarPlayerQuery), "UPDATE players SET usuario='%e', senha='%e', skin=%i, dinheiro=%i, admin_level=%i", PlayerData[playerid][usuario], PlayerData[playerid][senha], PlayerData[playerid][skin], PlayerData[playerid][dinheiro], PlayerData[playerid][admin_level]);
	mysql_query(conn, salvarPlayerQuery);
	if(mysql_errno() != 0) print("Erro");
	return 1;
}
O jogador desconecta porйm nгo faz alteraзхes no banco, consigo inserir/selecionar dados normalmente com essa connectionHandle
Reply
#2

Ve o meu e tenta mudar o jeito de salvar no Disconect de um jeito diferente aqui no meu funfa de boa so vc adapitar

Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(Logged[playerid] == 1)
    {
        new money = GetPlayerMoney(playerid);
        new query[300], pname[24];
        GetPlayerName(playerid, pname, 24);
        format(query, sizeof(query), "UPDATE playerdata SET admin=%d, money=%d, vip=%d, morreu=%d, matou=%d, WHERE user='%s'",
		PlayerInfo[playerid][pAdmin],
		money,
		PlayerInfo[playerid][pVIP],
		PlayerInfo[playerid][pMorreu],
		PlayerInfo[playerid][pMatou],
		pname);
        mysql_query(query);
    }
    return 1;
}
espero ter ajudado
Reply
#3

pawn Код:
mysql_query(conn, salvarPlayerQuery);
Use assim e tente
pawn Код:
mysql_query(conn, salvarPlayerQuery, false);
Isso por que no R38, o cache vem true por padrгo, entгo deve por false para nгo usar o cache... talvez funcione
Reply
#4

Bom, percebi aqui, que cometi um erro bem idiota. Eu estava esquecendo de atualizar os valores do ENUM, fiz isso:
Код:
public OnPlayerDisconnect(playerid)
{
	PlayerData[playerid][skin] = GetPlayerSkin(playerid);
	PlayerData[playerid][dinheiro] = GetPlayerMoney(playerid);

	new salvarPlayerQuery[500];
	mysql_format(conn, salvarPlayerQuery, sizeof(salvarPlayerQuery), "UPDATE players SET usuario='%e', senha='%e', skin=%i, dinheiro=%i, admin_level=%i WHERE id_player=%i", PlayerData[playerid][usuario], PlayerData[playerid][senha], PlayerData[playerid][skin], PlayerData[playerid][dinheiro], PlayerData[playerid][admin_level], PlayerData[playerid][id_player]);
	mysql_query(conn, salvarPlayerQuery, false);
	
	if(mysql_errno() != 0) print("Erro");
	return 1;
}
Porйm agora o cуdigo printa la no server_log "Erro"(do mysql_errno())
Reply
#5

Consegui arrumar um erro, tirei o PRIMARY KEY do campo id_player e funcionou, porйm, o cache_get_field_content nгo estб salvando os valores para o meu ENUM, ele passa null
Код:
cache_get_field_content(0, "usuario", PlayerData[playerid][usuario]);
cache_get_field_content(0, "senha", PlayerData[playerid][senha]);
Reply
#6

PROBLEMA RESOLVIDO
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)