Ajuda mysql -
matanza87 - 29.09.2016
Boa tarde gente , estou tendo problemas com o banco de dados banidos que criei para o comando banir , o problema й que quando eu dou ban em alguem e esse alguem tenta logar novamente ele sу й banido se tiver o nome na coluna banidos mas se mudar de nome mesmo com o mesmo ip ele consegue logar
Criando a tabela:
PHP код:
mysql_format(Conexao,Sstring,sizeof(Sstring),"CREATE TABLE IF NOT EXISTS `Banidos`(`RG`int , `Nome`varchar(24) ,`Motivo` varchar(50),`IP` varchar(20),`ADM` varchar(24))");
mysql_query(Conexao, Sstring, false);
Inserindo dados:
PHP код:
mysql_format(Conexao,Upbanidos,sizeof(Upbanidos),"insert into `banidos` (`Nome`,`RG`,`Motivo`,`IP`,`ADM`) values ('%s','%d','%s','%s','%s')",Nome(i),pInfo[i][pRG],String,IP(i),Nome(playerid));
mysql_query(Conexao,Upbanidos,false);
Verificando se o player esta banido:
PHP код:
public OnPlayerConnect(playerid)
{
new String[180];
mysql_format(Conexao,String,sizeof(String),"SELECT `Nome`, `RG`,`IP`,`Motivo`,`ADM` FROM `Banidos` WHERE `Nome`='%s' or `IP` = '%d'",Nome(playerid),IP(playerid)); // selecionar informaзoes de banidos onde nome = %s ou ip = %s
mysql_tquery(Conexao,String,"VerificarBanidos","i",playerid);
return 1;
}
forward VerificarBanidos(playerid);
public VerificarBanidos(playerid)
{
if(cache_get_row_count(Conexao) >= 1) // o problema estб nessa linha nгo estб dando erro porem sу verifica o nome e nгo o ip
{
new Sstring[60]; new Quem[24];
cache_get_field_content(0, "Motivo", Sstring);
cache_get_field_content(0, "ADM", Quem);
Ban(playerid);
printf("%s foi banido por %s motivo: %s",Nome(playerid),Quem,Sstring);
}
return printf("funзгo chamada");
}
agradeзo a quem tentar ajudar vlw
Re: Ajuda mysql -
F1N4L - 29.09.2016
Por essa razгo que criamos uma tabela somente para os banidos, desta forma vc verifica por nome e por IP, sem falar que fica mais completo e organizado saber a data e motivo do ban.
Outro detalhe й que sempre carregarб o valor da coluna banido de maneira desnecessбria, ou seja, terб mais informaзхes getadas da base de dados e se o jogador nгo tiver banido vai getar a informaзгo da tabela sem necessidade.
Peзo que leve o que eu falei em consideraзгo e crie uma tabela separada.
Respuesta: Ajuda mysql -
SammyJ - 29.09.2016
O seu erro foi somente em `IP`='
%d' quando й para ser `IP`='
%s'
PHP код:
public OnPlayerConnect(playerid)
{
new String[180];
mysql_format(Conexao, String, sizeof(String), "SELECT * FROM `Banidos` WHERE `Nome`='%s' or `IP` = '%s'", Nome(playerid), IP(playerid)); // selecionar informaзoes de banidos onde nome = %s ou ip = %s
mysql_tquery(Conexao, String, "VerificarBanidos", "i",playerid);
return 1;
}
forward VerificarBanidos(playerid);
public VerificarBanidos(playerid)
{
if(cache_get_row_count(Conexao) >= 1)
{
new Sstring[60]; new Quem[24];
cache_get_field_content(0, "Motivo", Sstring);
cache_get_field_content(0, "ADM", Quem);
Ban(playerid);
printf("%s foi banido por %s motivo: %s",Nome(playerid),Quem,Sstring);
}
return printf("funзгo chamada");
}
Re: Ajuda mysql -
matanza87 - 29.09.2016
Eu criei a tabela banidos , o problema й que nгo estб verificando o ip do player quando ele loga apenas o nome
Re: Ajuda mysql -
matanza87 - 29.09.2016
Obrigada pela ajuda, problema resolvido