Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 21
  1. #1
    Аватар для stimorol
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±

    Проверка подключена-ли БД

    Здравствуйте.

    Вживил в мод вот эту регистрация/авторизацию, и возник вопрос. Как добавить проверку, подключена ли БД (успешно или не успешно)?

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    OnGameModeInit покажите...

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

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±
    PHP код:
    public OnGameModeInit()
    {
        
    SetGameModeText(MOD_VERSION);
        
    mysql_connect_ID mysql_connect(MYSQL_CONNECT_INFO);
        
    DisableInteriorEnterExits();
        
    EnableStuntBonusForAll(0);
        
    LimitPlayerMarkerRadius(100.0);
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        return 
    1;


  4. #4
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Как то так:
    PHP код:
    public OnGameModeInit()
    {
        
    SetGameModeText(MOD_VERSION);
        
    mysql_connect_ID mysql_connect(MYSQL_CONNECT_INFO);
        
    // Вроде бы русский язык консолька не поддерживает, хз не тестил
        
    static const successful_connection[] = !"Успешно подключено к базе данных!";
        static const 
    fail_connection[] = !"Ошибка подключение к базе данных!";
        
    printf("%s"mysql_errno() == ? (successful_connection) : (fail_connection));
        
    DisableInteriorEnterExits();
        
    EnableStuntBonusForAll(0);
        
    LimitPlayerMarkerRadius(100.0);
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        return 
    1;


    P.S: Компилировать - компилировал, не тестил.
    UPD: printf - судя по всему не принимает запакованные строки.
    Последний раз редактировалось $continue$; 04.08.2015 в 17:10.

  5. #5
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Есть еще проще вариант

    PHP код:
    if(mysql_errno())
        print(
    "! Связь с базой данных не установлена\n* Проверьте введенные вами данные\n\n");
    else
        print(
    "! Связь с базой данных установлена\n\n"); 

  6. #6
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Есть еще проще вариант

    PHP код:
    if(mysql_errno())
        print(
    "! Связь с базой данных не установлена\n* Проверьте введенные вами данные\n\n");
    else
        print(
    "! Связь с базой данных установлена\n\n"); 
    1) В твоем случий если автор темы захочет изменить сообщение - ему придется менять в print. В моем случий - просто сменить в переменной. Мобильность программы - залог успеха.
    2) Если уж использовать ветвление if/else, то тут можно вернуть значение и закрыть мод. То есть - закрываем - и сразу понятно, что то пошло не так. В тернарном операторе такое не реализовать.

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Я думал так лучше будет:
    PHP код:
    static const
        
    success_info[2][] =
        {
            !
    "Ошибка подключения к базе данных!",
            !
    "Успешно подключено к базе данных!"
        
    };

    print(
    success_info[!!mysql_errno()]); 

  8. Пользователь сказал cпасибо:
    $continue$ (04.08.2015)
  9. #8
    Аватар для stimorol
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±
    $continue$, вставил ваш вариант, в консоли получается вот такая билибирда:

  10. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Я думал так лучше будет:
    PHP код:
    static const
        
    success_info[2][] =
        {
            !
    "Ошибка подключения к базе данных!",
            !
    "Успешно подключено к базе данных!"
        
    };

    print(
    success_info[mysql_errno()]); 
    Обращение к ячейке с индексом - 1?
    Последний раз редактировалось $continue$; 04.08.2015 в 16:33.

  11. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Как то так:
    PHP код:
    public OnGameModeInit()
    {
        
    SetGameModeText(MOD_VERSION);
        
    mysql_connect_ID mysql_connect(MYSQL_CONNECT_INFO);
        
    // Вроде бы русский язык консолька не поддерживает, хз не тестил
        
    static const successful_connection[] = !"Успешно подключено к базе данных!";
        static const 
    fail_connection[] = !"Ошибка подключение к базе данных!";
        
    printf("%s"mysql_errno() == ? (successful_connection) : (fail_connection));
        
    DisableInteriorEnterExits();
        
    EnableStuntBonusForAll(0);
        
    LimitPlayerMarkerRadius(100.0);
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        return 
    1;

    Нельзя передавать упакованные строки в print, printf и format. Куй сделал так, чтобы строки перебирались посимвольно, но забыл учесть строки в упакованном виде. Следует заметить, что в остальных функциях такой проблемы не наблюдается, т.к. там обычно используется функция amx_GetString, которая сама конвертирует упакованные строки в неупакованные.

    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Код:
    if(mysql_errno())
    	print("! Связь с базой данных не установлена\n* Проверьте введенные вами данные\n\n");
    else
    	print("! Связь с базой данных установлена\n\n");
    You're doing it wrong.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 
Страница 1 из 3 1 2 3 ПоследняяПоследняя

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

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

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

Ваши права

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