[Ajuda] Erro em mysql + pawn
#1

Olб galera. Estou criando um sistema de login e registro para meu servidor, mas estou com problema. A parte do registro, jб estб concluнda. Meu problema й quando uso a funзгo cache_get_field_content para salvar o valor da senha em uma variбvel, ele retorna 0.
No Mysql Log, acusa este erro: (http://imgur.com/KXGglzG) <- Link da imagem se nгo abrir aqui no fуrum.
Na real nгo й um erro, й um WARNING, mas fodasse, por que nгo estб funcionando. Por que isto ocorre ? Outra pergunta, um dos parвmetros desta funзгo й o "row", eu sempre uso 0, mas nгo sei o que й. Me ajudem nestas duas questхes ai, por favor ? Obrigado.
OBS.: No meu sistema, utilizo esta funзгo outra vezes, e lб, funciona perfeitamente.

Код:
if(dialogid == 02)
	{
		if(response)
		{
			if(!strlen(inputtext))
			{
				new string[123];
				GetPlayerName(playerid, nome, 30);
				format(string, sizeof(string), "{FFFFFF}Nick:{FFAC17} %s\n\n{FFFFFF}Digite sua senha para entrar no servidor.", nome);
				ShowPlayerDialog(playerid, 02, DIALOG_STYLE_PASSWORD, "{FFAC17}Login", string, "Confirmar", "Cancelar");
				return 1;
			}
			else
			{

				Player[playerid][Dinheiro] = cache_get_field_content_int(0, "Dinheiro");
				GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
				
			}
		}
	}
Neste caso ai, o dinheiro nгo vai para o player, e aquele WARNING do print, permanece.. Helpem me pls
Reply
#2

Bom, warnings sгo importantes e NUNCA devem ser ignorados.

No Active Cache: Significa que vocк nгo fez uma consulta solicitando armazenamento dos dados obtidos em cache, mas tentou obter dados do cache. Impossнvel nй

O parвmetro ROW й a quantidade de linhas retornadas, indo de 0 a (row - 1). Por exemplo, vocк faz uma consulta:

PHP код:
"SELECT * FROM players WHERE score > 100000;" 
O MySQL vai selecionar todas as LINHAS e todas as COLUNAS referente as essas linhas, que correspondem a condiзгo, que no caso, jogadores que tenham mais do que 100000 de score.

Supondo que nossa database seja assim:

Код:
| ID |   Nick  | Score  |
| 01 | Arakuta | 50000  |
| 02 | Joaozin | 101200 |
| 03 |  Manoel | 205000 |
O MySQL selecionarб duas linhas, a de ID 02 e a de ID 03, pois a coluna Score й maior que 100000

Nesse caso, a linha 0 do cache serб Joazin e a linha 1 serб Manoel.

Uma consulta com cache funciona mais ou menos assim:

PHP код:
stock CheckPlayerAccount(playerid)
{
    
format(SQL,200,"SELECT id FROM accounts WHERE name LIKE '%s' LIMIT 1",pName[playerid]);
    
mysql_function_query(HANDLE,SQL,true,"OnPlayerAccountCheck","d",playerid);

E para obter os dados do cache:

PHP код:
public OnPlayerAccountCheck(playerid)
{
    new 
registered,fields;
    
cache_get_data(registered,fields);
    
    if(
registered)
    {
        
// Encontrou a conta no banco de dados
    
}
    else
    {
        
// Nгo encontrou a conta no banco de dados
    
}
        
    return 
1;

Recomendo que leia este tutorial: https://sampforum.blast.hk/showthread.php?tid=337810
Reply
#3

Ahhh entendi. Pensei que poderia obter os valores sem fazer a consulta... Falando assim atй parece engraзado, por que nй.. Mas muito obrigado, bela explicaзгo, eu consegui resolver meu problema aqui. Muito obrigado. E irei tentar decifrar o tutorial que recomendou, talvez usarei o ****** Tradutor.. sahsuahsu Obrigado por tudo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)