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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±

    Мускулистая СУБД

    Hello, World! Прошу прощения за столь "непрофессиональный" вопрос, но можно ли сделать так, чтобы после запроса в бд (в частности, mysql_tquery), который создает там новую строку (игрок, траснспорт или дом), возвращалось его Auto_Increment значение первичного ключа из бд? Думаю, слишком быдлокостыльно будет после запроса на добавление в бд посылать сразу же еще один запрос - на получение ID. И вообще, есть ли какие-либо продвинутые мануалы по MySQL? С уроками по скрытым функциям, триггерам, внешним ключам и тд и тп?

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Функция cache_insert_id() вернёт то, что ты хочешь.

  3. Пользователь сказал cпасибо:
    bullplex (18.11.2018)
  4. #3
    Аватар для Josan_Solomon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    Я попробовал на новой регистрации. Вернуло ник, а не ид в бд. Хотя ид задан как первичный ключ. Как мне переопределить возвращаемое значение?

  5. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Покажи структуру таблицы

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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    Вот. Поле id - первичный ключ с автоинкрементом, а возвращается login (причем каким-то чудесным образом помещается в 32-х битную переменную - не массив)
      Открыть/закрыть

  7. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Josan_Solomon Посмотреть сообщение
    Вот. Поле id - первичный ключ с автоинкрементом, а возвращается login (причем каким-то чудесным образом помещается в 32-х битную переменную - не массив)
      Открыть/закрыть
    Покажи запрос и обработку результата его исполнения.

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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    Запрос (до форматирования):
    Код:
    "INSERT INTO `accounts` (`login`, `password`, `email`, `mujik`, `skin`)	VALUES ('%s', '%s', '%s', '%d', '%d')";
    А вот сам код обращения:
    1. mysql_query(dbHandle, query);
    2. player_info[playerid][pID] = cache_insert_id();
    3. printf("ID нового аккаунта: %s", player_info[playerid][pID]);

    И в консоли отображается не ид, а ник.

  9. #8
    Аватар для Josan_Solomon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    И еще, о другом. Допустим у меня есть покупка авто. При покупке меняются две таблицы - таблица игроков и таблица машин. Так же с домом. Можно изменение двух таблиц сделать одним запросом?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, а почему там "%s", если ID - число?. Да и кэш от запроса ещё обработать нужно, прежде чем писать cache_insert_id.

    Ответ на второй вопрос: щёлк.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  11. #10
    Аватар для Josan_Solomon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    А как обработать кэш при создании (не изменении/выбора) строки?

 

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

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

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

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

Ваши права

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