SA-MP Forums Archive
Регистр имени (mysql) - 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: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Регистр имени (mysql) (/showthread.php?tid=463581)



Регистр имени (mysql) - Leonidjp - 12.09.2013

Проблема заключается в регистре имени игрока, а именно - у нас есть зарегистрированное имя Vasya, но если зайти под именем VasyA, то нам снова предложат пройти регистрацию, на файлах такой проблемы не было. Нужно чтобы при заходе на VasyA, нам писало что такое имя уже зарегистрировано.


Re: Регистр имени (mysql) - Leonidjp - 12.09.2013

Код:
stock GetAccountID(playerid)
{
	new query[128], name[30];
	GetPlayerName(playerid,name,sizeof(name));
    format(query, sizeof(query),"SELECT `ID` FROM `players` WHERE `Name` = '%s'", name);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() == 1)
	{
        PlayerInfo[playerid][pID] = mysql_fetch_int();
        mysql_free_result();
        return PlayerInfo[playerid][pID];
  	}
	return 0;
}



Re: Регистр имени (mysql) - CamperGTA - 12.09.2013

в запросе меняем WHERE на WHERE BINARY
пример:
PHP код:
WHERE `name`='%s' 
меняем на
PHP код:
WHERE BINARY `name`='%s' 



Re: Регистр имени (mysql) - CamperGTA - 12.09.2013

Quote:
Originally Posted by Leonidjp
Посмотреть сообщение
Код:
stock GetAccountID(playerid)
{
	new query[128], name[30];
	GetPlayerName(playerid,name,sizeof(name));
    format(query, sizeof(query),"SELECT `ID` FROM `players` WHERE `Name` = '%s'", name);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() == 1)
	{
        PlayerInfo[playerid][pID] = mysql_fetch_int();
        mysql_free_result();
        return PlayerInfo[playerid][pID];
  	}
	return 0;
}
PHP код:
stock GetAccountID(playerid)
{
    new 
query[128], name[30];
    
GetPlayerName(playerid,name,sizeof(name));
    
format(querysizeof(query),"SELECT `ID` FROM `players` WHERE BINARY `Name` = '%s'"name);
    
mysql_query(query);
    
mysql_store_result();
    if(
mysql_num_rows() == 1)
    {
        
PlayerInfo[playerid][pID] = mysql_fetch_int();
        
mysql_free_result();
        return 
PlayerInfo[playerid][pID];
      }
    return 
0;




Re: Регистр имени (mysql) - Leonidjp - 12.09.2013

Quote:
Originally Posted by CamperGTA
Посмотреть сообщение
PHP код:
stock GetAccountID(playerid)
{
    new 
query[128], name[30];
    
GetPlayerName(playerid,name,sizeof(name));
    
format(querysizeof(query),"SELECT `ID` FROM `players` WHERE BINARY `Name` = '%s'"name);
    
mysql_query(query);
    
mysql_store_result();
    if(
mysql_num_rows() == 1)
    {
        
PlayerInfo[playerid][pID] = mysql_fetch_int();
        
mysql_free_result();
        return 
PlayerInfo[playerid][pID];
      }
    return 
0;

Без результатов, все равно выдает регистрацию.


Re: Регистр имени (mysql) - NordMan - 15.09.2013

Если создавал БД через phpmyadmin, то для атрибута "name" установи кодировку utf-8 bin. Должно помочь.


Re: Регистр имени (mysql) - TRPG - 15.09.2013

Как вариант можно сделать WHERE LOWER(Name) = LOWER('%s')


Re: Регистр имени (mysql) - Stepashka - 15.09.2013

Quote:
Originally Posted by NordMan
Посмотреть сообщение
Если создавал БД через phpmyadmin, то для атрибута "name" установи кодировку utf-8 bin. Должно помочь.
При создании таблиц нужно указать ячейке параметр BINARY, и кодировка тут не причем.

Quote:
Originally Posted by TRPG
Посмотреть сообщение
Как вариант можно сделать WHERE LOWER(Name) = LOWER('%s')
Не вздумайте больше ни когда и ни где такое предложить!


Re: Регистр имени (mysql) - Leonidjp - 26.03.2014

Поднимаю, все еще актуально.
Делаю ячейке атрибут BINARY, но ничего не меняется.


Re: Регистр имени (mysql) - Stepashka - 27.03.2014

Quote:
Originally Posted by White_116
Посмотреть сообщение
Как вариант.
При регистрации тоже понижай символы.
Зарегай новый акк, ибо со старыми не выйдет ничего.
RTFM
Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Quote:
Originally Posted by TRPG
Посмотреть сообщение
Как вариант можно сделать WHERE LOWER(Name) = LOWER('%s')
Не вздумайте больше ни когда и ни где такое предложить!