SA-MP Forums Archive
MySQL R38 - UPDATE - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: MySQL R38 - UPDATE (/showthread.php?tid=509243)



MySQL R38 - UPDATE - AndreOliveira - 26.04.2014

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


Re: MySQL R38 - UPDATE - djgabrielway - 26.04.2014

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


Re: MySQL R38 - UPDATE - Locky_ - 26.04.2014

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


Re: MySQL R38 - UPDATE - AndreOliveira - 26.04.2014

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())


Respuesta: MySQL R38 - UPDATE - AndreOliveira - 26.04.2014

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]);



Re: MySQL R38 - UPDATE - AndreOliveira - 26.04.2014

PROBLEMA RESOLVIDO