Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя
Показано с 11 по 20 из 24
  1. #11
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    В случае с выборкой по "AUTO_INCREMENT" MySQL делает это автоматически, ибо "A_I" поля не могут повторять значения и логично, что если одна строка найдена, то искать дальше нет смысла. А вот в случае с выборкой для полей без "AUTO_INCREMENT" лучше указывать "LIMIT" явно.
    Скорее это относится не к AUTO_INCREMENT, а к Primary Key и Unique полям.

  2. Пользователь сказал cпасибо:
    PawnoNoob (17.06.2018)
  3. #12
    Аватар для DeimoS
    Модератор?

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

    Почему же?

    Может быть довольно много проблем, например не раз замечал, что дом у игрока якобы есть, а в таблице с домами его нет (или наоборот). Конечно, тут косяк самой реализации, но лучше сделать удобнее и потом не мучаться!)
    Вообще дублировать какую-либо информацию в MySQL стоит минимально. Это банально избавит от нужды контролировать актуальность этой самой информации.
    А получить ID дома при загрузке можно не двумя отдельными запросами, а поместив запрос в запрос, а-ля:
    PHP код:
    SELECT a.*,IFNULL((SELECT h.id FROM house AS h WHERE a.id h.owner_id LIMIT 1), -1) AS owned_house FROM account AS a WHERE player_name 'Тут-Ник' LIMIT 1 
    В итоге просто выгружаешь аккаунт так же, как и выгружал, только помимо этого ещё обрабатываешь "owned_house"
    PHP код:
    cache_get_value_name_int(0"owned_house"/*Переменная с ID дома*/); 
    Цитата Сообщение от ziggi Посмотреть сообщение
    Скорее это относится не к AUTO_INCREMENT, а к Primary Key и Unique полям.
    Не думаю, что автор изучал документацию на эту тему, поэтому максимально постарался упростить :) phpMyAdmin обычно сразу устанавливает для поля параметр "Primary Key", когда выбиваешь "AUTO_INCREMENT"
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    PawnoNoob (17.06.2018)
  5. #13
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Не думаю, что автор изучал документацию на эту тему, поэтому максимально постарался упростить :) phpMyAdmin обычно сразу устанавливает для поля параметр "Primary Key", когда выбиваешь "AUTO_INCREMENT"
    Да, AUTO_INCREMENT может иметь только Primary Key, просто есть ещё UNIQUE поля, в которых тоже не обязательно ограничивать размер выборки.

  6. Пользователь сказал cпасибо:
    PawnoNoob (17.06.2018)
  7. #14
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Да, AUTO_INCREMENT может иметь только Primary Key, просто есть ещё UNIQUE поля, в которых тоже не обязательно ограничивать размер выборки.
    Как я уже писал ранее, детали были специально упущены. Я описывал лишь конкретную ситуацию, которая имеет отношение к вопросу автора, дабы он понимал ровно столько, сколько нужно для его ситуации. Вдаваться в подробности и рассказывать про индексы смысла особого нет, ибо без хотя бы минимального базиса эта информация ничего не даст автору. А с учётом того, что в SA-MP вообще редко кто осознанно пользуется возможностями MySQL, эта информация может стать просто не востребованной.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  8. Пользователь сказал cпасибо:
    PawnoNoob (17.06.2018)
  9. #15
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Чему равно значение INVALID_ITERATOR_SLOT?
    У меня, видимо, очень старая версия foreach, поэтому выдаёт варнинги.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Это макрос из y_foreach, а у тебя, видимо, обычный foreach :) Замени INVALID_ITERATOR_SLOT на ITER_NONE
    P.S. Обновил свой код.
    Последний раз редактировалось DeimoS; 17.06.2018 в 20:15.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    А в чем отличие между y_foreach и foreach?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    y_foreach - часть библиотеки YSI (имеет зависимости от других инклудов библиотеки)
    foreach - аналог y_foreach, только без зависимостей (то бишь, реализован как отдельный инклуд)

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

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

    Steve Pavlina

  13. #19
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Получается так, что лучше использовать y_foreach вместо foreach, верно?
    Если да, то как его подключать в мод?
    (В мобильной версии сайта не вижу BB-кодов, поэтому так)
    #include <YSI/YSI_Data/y_foreach ?
    (Слеш в другую сторону только).

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Получается так, что лучше использовать y_foreach вместо foreach, верно?
    Если в моде используешь YSI, то логичнее пользоваться и y_foreach. Правда не уверен, что так просто всё заработает, ибо синтаксис у функций может отличаться.


    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Если да, то как его подключать в мод?
    (В мобильной версии сайта не вижу BB-кодов, поэтому так)
    #include <YSI/YSI_Data/y_foreach ?
    (Слеш в другую сторону только).
    Ну да. Хотя стоит проверить, может он подключается автоматически (просто попробуй вызвать одну из функций, которые находятся внутри инклуда)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

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

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

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

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

Ваши права

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