Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±

    Как сделать запрос на то, есть ли ли в базе данных запись или нет? (для /unban)

    Не могу понять как сделать правильно запрос (Есть ли аккаунт или нет)


    PHP код:
    CMD:unban(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Logged")) return true;
        if(
    PlayerInfo[playerid][pAdmin] < 5) return true;
        new 
    asd[264];
        if(
    sscanf(params"s[25]"params[0])) return command(playerid,"/unban [Ник персонажа]");
        
    mysql_format(MYSQL_ARGasdsizeof(asd), "SELECT `Name` FROM `Account` WHERE BINARY `Name` = '%s'",params[0]);
        
    mysql_function_query(MYSQL_ARGasdtrue"Banan","s[25]"params[0]);
        return 
    true;
    }
    publicsBanan(playerid)
    {
        new 
    rowsfields,asd[264];
        
    cache_get_data(rowsfields);
        if(!
    rows)
        {
            
    error(playerid,"Этого аккаунта нет в базе данных");
        }
        else
        {
            
    format(asdsizeof(asd), "[A] Аккаунт %s был разбанен %sом %s",rows,GetAdmName(playerid),PlayerInfo[playerid][pName]),SendAdminMessage(COLOR_ADMasd);
            
    mysql_format(MYSQL_ARGasdsizeof(asd),"UPDATE `Account` SET `Ban` = '0' WHERE BINARY `Name` = '%s'",rows);
            
    mysql_function_query(MYSQL_ARGasdfalse"""");
        }
        
    mysql_free_result();
        return 
    true;

    К этому я пришел... Подскажите что делаю не так) и если можно опишите понятнее про запрос SELECT
    Последний раз редактировалось DeimoS; 09.10.2014 в 09:34.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Для начала стоит научиться формулировать суть темы в названии темы. Так, чтоб людям не нужно было открывать вашу тему для того, чтоб понять о чём она. Этим вы облегчите не только работу поисковиков, которые смогут выдавать ссылку на вашу тему при соответствующих запросах, но и людям, которые просто просматривают раздел.

    Во-вторых, не легче ли под забаненных выделить отдельную таблицу, куда и записывать всю информацию? С такой таблицей будет легче не только делать запросы, но и читать её самостоятельно.

    В-третьих, как-то так
    PHP код:
    CMD:unban(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Logged") || PlayerInfo[playerid][pAdmin] < 5) return true;
        new 
    asd[53+MAX_PLAYER_NAME];
        
    mysql_format(MYSQL_ARGasdsizeof(asd), "SELECT `Ban` FROM `Account` WHERE BINARY `Name` = '%s'"params);
        
    mysql_function_query(MYSQL_ARGasdtrue"Banan","is"playeridparams);
        return 
    true;
    }

    publicsBanan(playeridunbanned_name[])
    {
        new 
    asd[35+(MAX_PLAYER_NAME*3)];
        
    cache_get_data(asd[1], asd[2]);
        if(!
    asd[1])
        {
            
    error(playerid,"Этого аккаунта нет в базе данных");
        }
        else
        {
            new 
    ban_status cache_get_field_int(0"Ban"MYSQL_ARG);
            if(!
    ban_status) return error(playerid,"Данный игрок не забанен");
            
    format(asdsizeof(asd), "[A] Аккаунт %s был разбанен %sом %s"unbanned_nameGetAdmName(playerid), PlayerInfo[playerid][pName]);
            
    SendAdminMessage(COLOR_ADMasd);
            
    mysql_format(MYSQL_ARGasdsizeof(asd),"UPDATE `Account` SET `Ban` = '0' WHERE BINARY `Name` = '%s'"unbanned_name);
            
    mysql_function_query(MYSQL_ARGasdfalse"""");
        }
        return 
    true;

    Вам стоит изучить не только то, как работать с MySQL запросами, но и предназначение sscanf, а так же почитать о заполнителях... Вы пытались ID игрока, вызвавшего команду, вставить на место ника игрока, которого разбанить пытаются
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Не понял только это

    PHP код:
    new asd[53+MAX_PLAYER_NAME];
    new 
    asd[35+(MAX_PLAYER_NAME*3)]; 

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Подсчёт символов в строке.
    Почитай. Там не только о MySQL рассказано вкратце, но и о подсчёте символов и прочем
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Подсчёт символов в строке.
    Почитай. Там не только о MySQL рассказано вкратце, но и о подсчёте символов и прочем
    Понял тебя, то есть MAX_PLAYER_NAME уже имеет 24 символа)

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    Понял тебя, то есть MAX_PLAYER_NAME уже имеет 24 символа)
    Если быть точным, то MAX_PLAYER_NAME заменяется на число 24 при компиляции
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если быть точным, то MAX_PLAYER_NAME заменяется на число 24 при компиляции
    Так и понял, спасибо)
    Последний раз редактировалось DeimoS; 09.10.2014 в 20:02.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •