SA-MP Forums Archive
[Ajuda] Comparar nomes c/ e s/ capslock - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Comparar nomes c/ e s/ capslock (/showthread.php?tid=602785)



Comparar nomes c/ e s/ capslock - F1N4L - 12.03.2016

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.


Re: Comparar nomes c/ e s/ capslock - lucas_mdr1235 - 12.03.2016

verifica a resposta do dialogo DIALOG_REGISTER !


Re: Comparar nomes c/ e s/ capslock - Kimossab - 13.03.2016

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


Re: Comparar nomes c/ e s/ capslock - F1N4L - 13.03.2016

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!


Re: Comparar nomes c/ e s/ capslock - RaphaelCaldas - 14.03.2016

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.



Re: Comparar nomes c/ e s/ capslock - F1N4L - 14.03.2016

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!


Re: Comparar nomes c/ e s/ capslock - RaphaelCaldas - 14.03.2016

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!



Re: Comparar nomes c/ e s/ capslock - F1N4L - 14.03.2016

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


Re: Comparar nomes c/ e s/ capslock - Kimossab - 14.03.2016

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


Re: Comparar nomes c/ e s/ capslock - F1N4L - 15.03.2016

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!