Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: Не обрабатывается запрос MySQL

  1. #1
    Пользователь
    Регистрация
    28.08.2012
    Адрес
    Ростов-на-Дону
    Возраст
    27
    Сообщений
    63
    Репутация: 1

    Звание: пока не определено

    Не обрабатывается запрос MySQL

    (использую mysql plugin by BlueG)

    При коннекте, а точнее выбора скина игрока идёт поиск аккаунта:
    PHP код:
    public OnPlayerRequestClass(playeridclassid)
    {
        new 
    query_string[256];
        
    mysql_format(mysql_connect_IDquery_stringsizeof(query_string), "SELECT * FROM `users` WHERE `Nickname` = '%s'"PlayerInfo[playerid][pName]);
        return 
    mysql_function_query(mysql_connect_IDquery_stringtrue"FindPlayerInTable""i"playerid); //в этом паблике всё нормально работает, как до этой строчки, так и после
    }

    publics FindPlayerInTable(playerid)//этот паблик не работает... объясню понятнее
    {
        print(
    "test");//если поставить такую строчку, то в логах её потом не найти... в то же время её можно поставить в любое место паблика OnPlayerRequestClass, и она будет в логах
        
    new rowsfields;
        
    cache_get_data(rowsfields);
        if(!
    rows) return TextDrawShowForPlayer(playerid,welcome[1]);
        
    cache_get_field_content(0"Password"PlayerInfo[playerid][pPassword], mysql_connect_ID30);
        return 
    TextDrawShowForPlayer(playerid,welcome[10]);

    Что это может быть?

  2. #2
    Активный пользователь Аватар для vasyok28
    Регистрация
    11.01.2013
    Адрес
    Украина
    Возраст
    30
    Сообщений
    564
    Репутация: 96

    Звание: скоро придёт к известности
    в логах мускула что?
    Мою подпись угнали(
    Нарушение ЕПФ: "Подпись и иже с ней" п.4 (с) TERNER

  3. #3
    Джентльмен лжец Аватар для Fallen A.
    Регистрация
    03.09.2011
    Адрес
    Минск, БССР
    Возраст
    29
    Сообщений
    2,409
    Репутация: 337

    Звание: как роза среди колючек
    Советовал бы проверить вот такую конструкцию:
    PHP код:
    public OnPlayerConnect(playerid

        
    GetPlayerName(playeridPlayerInfo[playerid][pName], MAX_PLAYER_NAME);
        new 
    query 80 24 ];
        
    format querysizeof query"SELECT * FROM `users` WHERE `Nickname` = '%s' LIMIT 1"PlayerInfo[playerid][pName]);
        
    mysql_function_query (mysql_connect_IDquerytrue"CheckPlayerRegistered""ii"playerid0);


    public 
    CheckPlayerRegistered(playerid)

        
    printf("TEST USER REG!");
        return 
    true;


  4. #4
    Люблю Окса :3 Аватар для Folleah
    Регистрация
    26.09.2012
    Сообщений
    2,045
    Репутация: 184

    Звание: - весьма и весьма положительная личность
    Собственно, почему
    PHP код:
    publics FindPlayerInTable(playerid
    а не
    PHP код:
    public FindPlayerInTable(playerid
    ?
    Последний раз редактировалось Folleah; 19.01.2016 в 16:41.

  5. #5
    Активный пользователь Аватар для Argument
    Регистрация
    06.11.2012
    Адрес
    δδδδδδδδδδδδδδδδ
    Возраст
    54
    Сообщений
    780
    Репутация: 118

    Звание: скоро придёт к известности
    Цитата Сообщение от Folleah Посмотреть сообщение
    Собственно, почему
    PHP код:
    publics FindPlayerInTable(playerid
    а не
    PHP код:
    public FindPlayerInTable(playerid
    ?
    Это не стандартная функция. Уверен, что в шапке мода задана дефайном (forward + public), получается publics.

  6. #6
    Джентльмен лжец Аватар для Fallen A.
    Регистрация
    03.09.2011
    Адрес
    Минск, БССР
    Возраст
    29
    Сообщений
    2,409
    Репутация: 337

    Звание: как роза среди колючек
    Цитата Сообщение от Argument Посмотреть сообщение
    Это не стандартная функция. Уверен, что в шапке мода задана дефайном (forward + public), получается publics.
    Так и есть и вообще, так делать нет смысла.

  7. #7
    Активный пользователь Аватар для Argument
    Регистрация
    06.11.2012
    Адрес
    δδδδδδδδδδδδδδδδ
    Возраст
    54
    Сообщений
    780
    Репутация: 118

    Звание: скоро придёт к известности
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Так и есть и вообще, так делать нет смысла.
    Че так? Ты про вообще или про ситуацию ТСа?

  8. #8
    Пользователь
    Регистрация
    08.01.2016
    Сообщений
    6
    Репутация: 11

    Звание: на пути к лучшему
    Покажите паблик OnPlayerConnect, ибо, возможно, что вы не записываете никнейм игрока.
    Вероятно, проблемы могут возникнуть из-за того, что у вас не указан forward.

    Цитата Сообщение от Argument Посмотреть сообщение
    Это не стандартная функция. Уверен, что в шапке мода задана дефайном (forward + public), получается publics.
    Это не функция, а макрос.

    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Так и есть и вообще, так делать нет смысла.
    Почему же? Смысл есть: вам будет проще указывать паблики (хотя, от этого толку мало), и вы не будете забывать про forward.


    Цитата Сообщение от Gambit26 Посмотреть сообщение
    public OnPlayerRequestClass(playerid, classid)
    {
    return mysql_function_query(mysql_connect_ID, query_string, true, "FindPlayerInTable", "i", playerid); //в этом паблике всё нормально работает, как до этой строчки, так и после
    }
    Неправильно возвращать функцию в данном паблике, ибо: «Returning 0 in this callback will prevent the player from spawning. The player can be forced to spawn when SpawnPlayer is used, however the player will re-enter class selection the next time they die.».

    Цитата Сообщение от Fallen A. Посмотреть сообщение
    mysql_function_query (mysql_connect_ID, query, true, "CheckPlayerRegistered", "ii", playerid, 0);
    Зачем нужен нуль?

  9. #9
    Активный пользователь Аватар для Argument
    Регистрация
    06.11.2012
    Адрес
    δδδδδδδδδδδδδδδδ
    Возраст
    54
    Сообщений
    780
    Репутация: 118

    Звание: скоро придёт к известности
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Это не функция, а макрос.
    Но ведь благодаря макросу и появляется FindPlayerInTable - а это функция. Нет?

  10. #10
    Пользователь
    Регистрация
    08.01.2016
    Сообщений
    6
    Репутация: 11

    Звание: на пути к лучшему
    Цитата Сообщение от Argument Посмотреть сообщение
    Но ведь благодаря макросу и появляется FindPlayerInTable - а это функция. Нет?
    FindPlayerInTable — это функция, но она никак не может появляется благодаря макросу, хотя бы из-за того, что макроподстановка совершается до компиляции(препроцессор) в файл AMX.

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

Ваши права

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