[Ajuda] Comparar nomes c/ e s/ capslock
#1

Eu to desenvolvendo um FS admin e atй agora ele estб muito bom, mas gostaria de adicionar a funзгo de comparaзгo entre o nick q conectou com o nick no banco de dados.

PHP код:
new 
    
Query_User[200], 
    
DBResult:Resultado

    
format(Query_Usersizeof(Query_User), "SELECT `SENHA` AND `NOME` FROM `"USER_TABLE"` WHERE `NOME` = '%s'"DB_Escape(pName(playerid)));  
Resultado db_query(User_DatabaseQuery_User);  
 if(
db_num_rows(Resultado))
 { 
    
db_get_field_assoc(Resultado"SENHA"USER[playerid][pSENHA], 129);  
        
    
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"[»] Painel de Login""[»] Bem Vindo novamente ao nosso servidor\nLogue-se para continuar de onde parou:""LOGAR""SAIR");  

else  

    
db_get_field_assoc(Resultado"NOME"USER[playerid][pNOME], 24);
        
db_get_field_assoc(Resultado"SENHA"USER[playerid][pSENHA], 129);  
    
    if(
strcmp(pName(playerid), USER[playerid][pNOME], false) == 0)
    {
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"[»] Painel de Login""[»] Bem Vindo novamente ao nosso servidor\nLogue-se para continuar de onde parou:""LOGAR""SAIR");  
        }
        else
    {
    
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_PASSWORD"[»] Painel de Registro""[»] Bem Vindo ao nosso servidor\nRegistre-se para salvar seu dados:""REGISTRAR""SAIR");  
    }

db_query(User_DatabaseQuery_User);  
db_free_result(Resultado); 
O problema й q por mais que realmente esteja comparando os nomes c/ ou s/ caps, a senha n funfa e o usuбrio loga com qualquer uma!
Se alguem puder ajudar.
Reply
#2

verifica a resposta do dialogo DIALOG_REGISTER !
Reply
#3

na query tenta substituir o
WHERE `NOME` = '%s'"
por
WHERE COLLATE `NOME` LIKE '%s'"
Reply
#4

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
na query tenta substituir o
WHERE `NOME` = '%s'"
por
WHERE COLLATE `NOME` LIKE '%s'"
Vocк salvou meu FS, porйm isso estб errado (para comparaзгo). O corretor й e vou deixar se alguйm mais precisar:
Quote:

WHERE `NOME` = '%s' COLLATE NOCASE

Mas muito obrigado!
Reply
#5

Nгo use LIKE, se o Campo nao tiver Primary Key ou Unique KEY, e tambйm, nгo use LIKE, de forma alguma, Use LOWER(`NOME`) = LOWER('%s') [E OQUE MAIS QUISER AQUI(NГO VAI PRECISAR, MAS SE QUISER )].

BOA SORTE, E TOME CUIDADO, LIKE PODE BUGAR DE UMA FORMA CHATA.
Reply
#6

Quote:
Originally Posted by RaphaelCaldas
Посмотреть сообщение
Nгo use LIKE, se o Campo nao tiver Primary Key ou Unique KEY, e tambйm, nгo use LIKE, de forma alguma, Use LOWER(`NOME`) = LOWER('%s') [E OQUE MAIS QUISER AQUI(NГO VAI PRECISAR, MAS SE QUISER )].

BOA SORTE, E TOME CUIDADO, LIKE PODE BUGAR DE UMA FORMA CHATA.
Nгo conheзo boa parte das funзхes de SQLite, mas sei o suficiente para gerar um bom banco de dados. Nгo sei o porque do LIKE ou do LOWER, mas vou testar esse seu modo para ver se funciona, a principio o COLLATE NOCASE ta funfando perfeitamente!
Reply
#7

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Nгo conheзo boa parte das funзхes de SQLite, mas sei o suficiente para gerar um bom banco de dados. Nгo sei o porque do LIKE ou do LOWER, mas vou testar esse seu modo para ver se funciona, a principio o COLLATE NOCASE ta funfando perfeitamente!
Oi Amigгo, vou te mostrar o Por que:

Com o uso de LIKE:


Com o uso de LOWER():


Nunca й recomendado usar LIKE, LIKE й usado melhor para sistemas de Pesquisa, e nгo de comparaзгo!

E SIM, ESTOU USANDO UNIQUE KEY, PARA REPRESENTAR MELHOR!
Reply
#8

Obrigado por aplicar a comparaзгo na prбtica. Com certeza vai me servir posteriormente!
Reply
#9

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Vocк salvou meu FS, porйm isso estб errado (para comparaзгo). O corretor й e vou deixar se alguйm mais precisar:


Mas muito obrigado!
Eh pois, jб nao me lembrava da sintaxe certa mas sabia que tinha que usar o collate algures xD
Reply
#10

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
Eh pois, jб nao me lembrava da sintaxe certa mas sabia que tinha que usar o collate algures xD
A verdade й q mesmo errando me ajudou muito, pois como a sua forma nгo havia funfado, eu pesquisei por sintaxes parecidas e encontrei!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)