Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Для начала стоит научиться формулировать суть темы в названии темы. Так, чтоб людям не нужно было открывать вашу тему для того, чтоб понять о чём она. Этим вы облегчите не только работу поисковиков, которые смогут выдавать ссылку на вашу тему при соответствующих запросах, но и людям, которые просто просматривают раздел.

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

    В-третьих, как-то так
    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 игрока, вызвавшего команду, вставить на место ника игрока, которого разбанить пытаются
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Подсчёт символов в строке.
    Почитай. Там не только о MySQL рассказано вкратце, но и о подсчёте символов и прочем
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    Понял тебя, то есть MAX_PLAYER_NAME уже имеет 24 символа)
    Если быть точным, то MAX_PLAYER_NAME заменяется на число 24 при компиляции
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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)

Ваши права

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