Erro em mysql + pawn -
RafaelOsio - 01.03.2015
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
Re: Erro em mysql + pawn -
arakuta - 01.03.2015
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
Re: Erro em mysql + pawn -
RafaelOsio - 01.03.2015
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.