Регистр имени (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(query, sizeof(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(query, sizeof(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')
|
Не вздумайте больше ни когда и ни где такое предложить!
|