Перейти к содержанию
Авторизация  
Danila_Ud

Ошибка в MYCQL

Рекомендуемые сообщения

Danila_Ud

Я сделал подключение к базе данных через MYSQL. Но в базе данных вместо имени (логина) ничего не пишется. То есть пишется ИД, логин (нет) и пароль.

enum player
{
 	ID, //?? ????????
}
new player_info[MAX_PLAYERS][player];
public OnPlayerConnect(playerid)
{
	SCM(playerid, 0x00FF40AA, "????? ?????????? ?? Hydra RolePplay!");
	SetTimerEx("player_connect", 700, false, "i", playerid);
	return 1;
}
forward player_connect(playerid);
public player_connect(playerid)
{
    static const fmt_query[] = "SELECT `id` FROM `accounts` WHERE `login` = '%s'";
	new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)];
	format(query, sizeof(query), fmt_query, sendername(playerid));
	mysql_tquery(dbHandle, query, "player_check", "ii", playerid, 0);
	return 1;
}
forward player_check(playerid);
public player_check(playerid)
{
	new rows;
	cache_get_row_count(rows);
	if(rows) show_login(playerid);
	else show_register(playerid);
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
 	switch(dialogid)
 	{
 	    case 1:
 	    {
 	        if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 16)
 	        {
 	            show_register(playerid);
			}
			else
			{
				new query[128], temp[16];
				mysql_escape_string(inputtext, temp);
				format(query, sizeof(query), "INSERT INTO `accounts` (`login`, `password`) VALUES ('%s','%s')", sendername(playerid), temp);
				mysql_query(dbHandle, query);
				format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1", sendername(playerid), temp);
				mysql_tquery(dbHandle, query, "player_login", "i", playerid);
 	        }
		}
	}
	return 1;
}

То есть. Регистрация произошла. Но при регистрации не указался логин в базе данных

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

Раскладку на русскую и копируй

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Зачем было делать sendername, когда можно было сразу записать ник нейм в player_info и дальше использовать player_info[playerid][NAME]

enum player
{
    ID, // ID ACCA
    NAME[MAX_PLAYER_NAME] // NICK NAME
}
new player_info[MAX_PLAYERS][player];
public OnPlayerConnect(playerid)
{ 
        GetPlayerName(playerid, player_info[playerid][NAME], MAX_PLAYER_NAME);
	SCM(playerid, 0x00FF40AA, "Добро пожаловать на Hydra RolePplay!");
	SetTimerEx("player_connect", 700, false, "i", playerid);
	return 1;
}
forward player_connect(playerid);
public player_connect(playerid)
{
static const fmt_query[] = "SELECT * FROM `accounts` WHERE `login` = '%s'";
    new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)];
    format(query, sizeof(query), fmt_query, player_info[playerid][NAME]);
    mysql_tquery(dbHandle, query, "player_check", "ii", playerid, 0);
    return 1;
}
forward player_check(playerid);
public player_check(playerid)
{
    new rows;
    cache_get_row_count(rows);
    if(rows) show_login(playerid);
    else show_register(playerid);
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
     case 1:
     {
     if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 16)
     {
     show_register(playerid);
            }
            else
            {
                new query[128], temp[16];
                mysql_escape_string(inputtext, temp);
                format(query, sizeof(query), "INSERT INTO `accounts` (`login`, `password`) VALUES ('%s','%s')", player_info[playerid][NAME], temp);
                mysql_query(dbHandle, query);
                format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `login` = '%s' AND `password` = '%s' LIMIT 1", player_info[playerid][NAME], temp);
                mysql_tquery(dbHandle, query, "player_login", "i", playerid);
     }
        }
    }
    return 1;
}
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.