[Ajuda] Puxar Informaзгo do MySQL
#1

Quero puxar do banco de dados o valor que estб no banco de dados samp na tabela users da coluna skin de acordo com o player logado, como falзo?

Код:
#include <a_samp>
#include <a_mysql>

#define HOSTNAME "localhost"
#define USERNAME "root"
#define DATABASE "samp"
#define PASSWORD ""

new conexao;
new bool:Login[MAX_PLAYERS];

main()
{
	print("Servidor execultado com sucesso");
	print("-------------------------");
	print("Forum.SA-MP.com - Acesse!");
}

public OnGameModeInit()
{
	conexao = mysql_connect(HOSTNAME, USERNAME, DATABASE, PASSWORD);
    if(mysql_ping(conexao) < 1)
    return SendRconCommand("exit");
    mysql_function_query(conexao, "CREATE TABLE IF NOT EXISTS `users` (`id` INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,`nick` VARCHAR(24) NOT NULL,`senha` VARCHAR(32),`email` VARCHAR(24) NOT NULL,`score` INT(11),`money` INT(11),`skin` INT(11),`admin` INT(11), `ouro` INT(11))", false, "", "","","","","","","","");
    return 1;
}

public OnGameModeExit()
{
	mysql_close(conexao);
	return 1;
}

public OnPlayerConnect(playerid)
{
	ResetPlayerMoney(playerid);

	new nick[MAX_PLAYER_NAME],consulta[128];

	GetPlayerName(playerid, nick, MAX_PLAYER_NAME);

	mysql_format(conexao, consulta, "SELECT * FROM `users` WHERE `nick`  = '%e'", nick);

	mysql_function_query(conexao, consulta, true, "ProcurarUsuario", "i", playerid);
	
	

	return 1;
}

forward ProcurarUsuario(playerid);
public ProcurarUsuario(playerid)
{
	new
	    linhas,
	    campos;

	cache_get_data(linhas, campos, conexao);

	if(!linhas)
	{
	    ShowPlayerDialog(playerid, 552, DIALOG_STYLE_MSGBOX, "{FFFFFF}Registro", "{FFFFFF}Vocк precisa se registrar no site: www.gtahomelife.xyz para poder logar.", "OK", "Sair");
	}
	else
	{
	    ShowPlayerDialog(playerid, 551, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FFFFFF}Digite sua senha", "Login", "");
	}
	return 1;
}

//
// Fazendo o processamento dos dialogs
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new
		nick[MAX_PLAYER_NAME],
		consulta[128];

	GetPlayerName(playerid, nick, sizeof(nick));

	switch(dialogid)
	{
	    case 552:
	    {
			if(!response)
			    Kick(playerid);

			else // Botгo registrar
			{
			    if(strlen(inputtext) < 5 || strlen(inputtext) > 32)
			    {
			        SendClientMessage(playerid, -1, "A senha deve conter entre 5 e 32 caracteres noob.");
			        Kick(playerid);
			    }
			    else
			    {
			        mysql_format(conexao, consulta, "INSERT INTO `users` (`nick`,`senha`) VALUES ('%s','%s')", nick, inputtext);
			        mysql_function_query(conexao, consulta, false, "", "");
					ShowPlayerDialog(playerid, 551, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FFFFFF}Digite sua senha para efetuar o login", "Login", "Cancelar");
				}
			}
	    }
	    case 551:
	    {
			if(!response)
			    Kick(playerid);

			else
			{
				mysql_format(conexao, consulta, "SELECT * FROM `users` WHERE `nick` = '%e' AND `senha` = '%e'", nick, inputtext);
				mysql_function_query(conexao, consulta, true, "FazerLogin", "i", playerid);
			}
	    }
	}
	return 1;
}

forward FazerLogin(playerid);
public FazerLogin(playerid)
{
	new
		linhas,
		campos;

	cache_get_data(linhas, campos, conexao);
	if(!linhas)
	{
	    SendClientMessage(playerid, -1, "Senha errada noob.");
	    Kick(playerid);
	}
	else
	{
	    Login[playerid] = true;
	}
	return 1;
}


public OnPlayerRequestSpawn(playerid)
{
	SetPlayerSkin(playerid, );// Quero puxar do banco de dados o valor que estб no banco de dados samp na tabela users da coluna skin de acordo com o player logado

}
Procurei no fуrum, mas sу achei posts desatualizados.
Reply
#2

PHP код:
public OnPlayerRequestSpawn(playerid)
{
    new 
SkinPlayernick[MAX_PLAYER_NAME], query[100];
    
GetPlayerName(playeridnickMAX_PLAYER_NAME); 
    
format(querysizeof(query), "SELECT * FROM users WHERE nick='%s'"nick);
    
mysql_query(conexaoquerytrue);  
    
cache_get_value_int(0"skin"SkinPlayer);
    
SetPlayerSkin(playeridSkinPlayer);
    return 
1;

Tenta aн amigo
Reply
#3

Quote:
Originally Posted by Ramires
Посмотреть сообщение
PHP код:
public OnPlayerRequestSpawn(playerid)
{
    new 
SkinPlayernick[MAX_PLAYER_NAME], query[100];
    
GetPlayerName(playeridnickMAX_PLAYER_NAME); 
    
format(querysizeof(query), "SELECT * FROM users WHERE nick='%s'"nick);
    
mysql_query(conexaoquerytrue);  
    
cache_get_value_int(0"skin"SkinPlayer);
    
SetPlayerSkin(playeridSkinPlayer);
    return 
1;

Tenta aн amigo
de esse erro
Код:
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(145) : error 017: undefined symbol "mysql_query"
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(146) : error 017: undefined symbol "cache_get_value_int"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Reply
#4

Quote:
Originally Posted by JacKPanK
Посмотреть сообщение
de esse erro
Код:
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(145) : error 017: undefined symbol "mysql_query"
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(146) : error 017: undefined symbol "cache_get_value_int"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Qual a versгo da sua include?
Reply
#5

Quote:
Originally Posted by Ramires
Посмотреть сообщение
Qual a versгo da sua include?
Usei esse

Код:
/**
 * MySQL plugin R7
 * Copyright © 2008-2011, BlueG
 */

#if defined mysql_included
	#endinput
#endif
#define mysql_included

/**
 * Common error codes
 *
 * Client: http://dev.mysql.com/doc/refman/5.0/en/e...1.97125366 * Server: http://dev.mysql.com/doc/refman/5.0/en/e...1.97125366 *
 */

#define ER_DBACCESS_DENIED_ERROR 1044
#define ER_ACCESS_DENIED_ERROR 1045
#define ER_UNKNOWN_TABLE 1109
#define ER_SYNTAX_ERROR 1149
#define CR_SERVER_GONE_ERROR 2006
#define CR_SERVER_LOST 2013
#define CR_COMMAND_OUT_OF_SYNC 2014
#define CR_SERVER_LOST_EXTENDED 2055

// Native functions

#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
#define mysql_next_row() mysql_retrieve_row()
#define mysql_get_field(%1,%2) mysql_fetch_field_row(%2,%1)

#define mysql_query_callback(%1,%2,%3,%4,%5) \
	mysql_function_query(%5,%2,false,%3,"siii",%2,%1,%4,%5)

#define mysql_query(%1,%2,%3,%4) \
	mysql_function_query(%4,%1,false,"OnQueryFinish","siii",%1,%2,%3,%4)


native mysql_affected_rows(connectionHandle = 1);
native mysql_close(connectionHandle = 1);
native mysql_connect(const host[], const user[], const database[], const password[], port = 3306);
native mysql_data_seek(offset, connectionHandle = 1);
native mysql_debug(enable = 1);
native mysql_errno(connectionHandle = 1);
native mysql_fetch_field(number, dest[], connectionHandle = 1);
native mysql_fetch_field_row(string[], const fieldname[], connectionHandle = 1);
native mysql_fetch_row_format(string[], const delimiter[] = "|", connectionHandle = 1);
native mysql_format(connectionHandle, output[], format[], {Float,_}:...);
native mysql_field_count(connectionHandle = 1);
native mysql_free_result(connectionHandle = 1);
native mysql_get_charset(destination[], connectionHandle = 1);
native mysql_insert_id(connectionHandle = 1);
native mysql_num_rows(connectionHandle = 1);
native mysql_num_fields(connectionHandle = 1);
native mysql_ping(connectionHandle = 1);
native mysql_real_escape_string(const source[], destination[], connectionHandle = 1);
native mysql_reconnect(connectionHandle = 1);
native mysql_reload(connectionHandle = 1);
native mysql_retrieve_row(connectionHandle = 1);
native mysql_set_charset(charset[], connectionHandle = 1);
native mysql_stat(const destination[], connectionHandle = 1);
native mysql_store_result(connectionHandle = 1);
native mysql_warning_count(connectionHandle = 1);

// Cache functions

native mysql_function_query(connectionHandle, query[], bool:cache, callback[], format[], {Float,_}:...);
native cache_get_row(row, idx, dest[], connectionHandle = 1);
native cache_get_field(field_index, dest[], connectionHandle = 1);
native cache_get_data(&num_rows, &num_fields, connectionHandle = 1);
native cache_get_field_content(row, const field_name[], dest[], connectionHandle = 1);
native enable_mutex(bool:enable);

// forward declarations

forward OnQueryError(errorid, error[], callback[], query[], connectionHandle);
Reply
#6

Atualize o cуdigo que lhe mandei para esse:
PHP код:
public OnPlayerRequestSpawn(playerid)
{
    new 
SkinPlayernick[MAX_PLAYER_NAME], query[100]; 
    
GetPlayerName(playeridnickMAX_PLAYER_NAME);   
    
format(querysizeof(query), "SELECT * FROM users WHERE nick='%s'"nick);
    new 
Cache:Temp mysql_query(conexaoquerytrue);   
    
cache_get_field_content(0"Skin"SkinPlayerconexao);
    
SetPlayerSkin(playeridSkinPlayer); 
    
cache_delete(Tempconexao);
    return 
1

OBS: Nгo foi testado, caso ocorra algum problema irei tentar lhe ajudar.
Reply
#7

Quote:
Originally Posted by Ramires
Посмотреть сообщение
Atualize o cуdigo que lhe mandei para esse:
PHP код:
public OnPlayerRequestSpawn(playerid)
{
    new 
SkinPlayernick[MAX_PLAYER_NAME], query[100]; 
    
GetPlayerName(playeridnickMAX_PLAYER_NAME);   
    
format(querysizeof(query), "SELECT * FROM users WHERE nick='%s'"nick);
    new 
Cache:Temp mysql_query(conexaoquerytrue);   
    
cache_get_field_content(0"Skin"SkinPlayerconexao);
    
SetPlayerSkin(playeridSkinPlayer); 
    
cache_delete(Tempconexao);
    return 
1

OBS: Nгo foi testado, caso ocorra algum problema irei tentar lhe ajudar.
Код:
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(145) : error 017: undefined symbol "mysql_query"
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(145) : warning 213: tag mismatch
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(146) : error 035: argument type mismatch (argument 3)
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(148) : error 017: undefined symbol "cache_delete"
C:\Users\yanmo\Desktop\Server_Samp\gamemodes\gamemodesql.pwn(145) : warning 204: symbol is assigned a value that is never used: "Temp"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Reply
#8

No inнcio da GM coloque:

PHP код:
native Cache:mysql_query(conhandlequery[], bool:use_cache true); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)