[Ajuda] Ajuda mysql
#1

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(ConexaoSstringfalse); 
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
Reply
#2

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.
Reply
#3

O seu erro foi somente em `IP`='%d' quando й para ser `IP`='%s'
PHP код:
public OnPlayerConnect(playerid)
{
    new 
String[180];
    
mysql_format(ConexaoStringsizeof(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(ConexaoString"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");

Reply
#4

Eu criei a tabela banidos , o problema й que nгo estб verificando o ip do player quando ele loga apenas o nome
Reply
#5

Obrigada pela ajuda, problema resolvido
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)