Суббота, 04 Мая 2024, 18:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » FreeZa [4]
Результаты поиска
FreeZaДата: Суббота, 30 Августа 2014, 02:26 | Сообщение # 1 | Тема: [PHP] Как облегчить запрос в MySql?
был не раз
Сейчас нет на сайте
Эм...либо я чегото не понимаю, либо у вас с мускулем туговато...
Цитата last2424 ()
там где надо написать имя базы, надо написать *

Во первых, не базы а таблицы
во вторых, ни кто в здравом уме не будет выгружать всю базу, это бред.
в третьих, задача была совершенно в другом, видимо читать и вдумываться лень вам лень...

специально для вас напишу пример, и вы мне составите под него запрос, я вот уже составил запрос и решил свою задачку, кстати спасибо товарищу lvovand!
Зеленым цветов выделю то инфу которую нужно достать, обратившись одним запросом к таблице users по его ID

есть 3 таблицы таблица:
1 таблица: (users)
user_id | name | lvl | engine_id | wheel_id |
---------------------------------------
1 | ivan | 1 | 350 | 1705 |
2 | коля | 2 | 170 | 1550 |
---------------------------------------

2 таблица: (engine)
engine_id | eng_name | fuel | speed |
---------------------------------------
350 | Двигатель 1 | 350 | 80 |
170 | Двигатель 2 | 450 | 90 |
---------------------------------------

2 таблица: (wheel)
wheel_id | wheel_name | radius | type |
---------------------------------------
1550 | супер колесо 1 | 15 | drift |
1705 | супер колесо 2 | 18 | race |
---------------------------------------

Добавлено (30.08.2014, 02:23)
---------------------------------------------
last2424, Ладно уверен ты не сможешь ответить на эту задачку, учитывая что ты путаешь понятия база и таблица и несешь всякий бред...

Вот решение, может кому пригодится)

SELECT *
FROM users
INNER JOIN engine ON users.engine_id = engine.engine_id
INNER JOIN wheel ON users.wheel_id = wheel.wheel_id
WHERE users.id=1

Добавлено (30.08.2014, 02:26)
---------------------------------------------
Соответственно, таких запросов внутри запроса может быть большое колличество, хоть 15 как в моем случае, скорость обработки такого запроса намного быстрее, чем 15 обращений в каждую таблицу, потестил на своей базе, результат такого запроса впечатлил)

FreeZaДата: Суббота, 30 Августа 2014, 00:55 | Сообщение # 2 | Тема: [PHP] Как облегчить запрос в MySql?
был не раз
Сейчас нет на сайте
Цитата last2424 ()
можно сделать вызов базы

Видимо ты не вник в вопрос, или я гдето не так сформулировал)
как подключиться к базе это то понятно (это как ни как азы работы с базой),
вопрос в том, как составить один запрос в 15 таблиц сразу, вот этого я не понял, и попросил пример такого запроса =)
FreeZaДата: Суббота, 30 Августа 2014, 00:41 | Сообщение # 3 | Тема: [PHP] Как облегчить запрос в MySql?
был не раз
Сейчас нет на сайте
Цитата lvovand ()
Тут надо изначально максимально хорошо структуру базы и таблиц продумать

Я за основу взял таблицы из lineage2, достаточно грамотно все сделано, хотя даже там я нашел что можно было бы упростить =)

Цитата lvovand ()
ты же можешь за один запрос вытащить данные из базы

Можно подробнее? как одним запросом (php->mysql) вытащить данные разом из разных таблиц?
простенький пример чтоб я мог уже дальше загуглить

Цитата lvovand ()
а считать уже на клиентской стороне

Думаю не стоит, грозит подменой значений, по сути машина, это и есть игрок, у нее есть жизни, броня, скорость и тд...с точки зрения безопасности лучше просчитать на сервере, и отдать значения в интерфейс для дальнейшей работы с ними, ИМХО.

А вот про один запрос в 15 таблиц очень стало интересно =)
FreeZaДата: Суббота, 30 Августа 2014, 00:10 | Сообщение # 4 | Тема: [PHP] Как облегчить запрос в MySql?
был не раз
Сейчас нет на сайте
Всем доброго времени суток, возникло пару вопросов и связанны они не только с обращением в базу, а в целом о написании браузерных игр.

Собственно вот в чем вопрос:
игровая механика для примера:
Игрок может купить себе Машину, у машины есть слоты для обвесов, двигатель, коробка передач, охлаждение, оружие и тд (примерно слотов 15) на машину.
В зависимости от типа машины и уровня количество слотов меняется, например на самой дешевой машине всего 3 слота, а на самой дорогой 15 слотов.

в каждый слот вставляется предмет со своими уникальными характеристиками, следовательно это отдельный класс со своими методами.
у каждого такого предмета своя табличка (примерно 500 разновидностей одного типа предмета), так как столбцы ну уж очень разные, было решено сделать разные таблицы.

Собственно для того чтобы загрузить машину одного игрока и подсчитать все параметры авто нужно сделать 15 запросов за раз, это меня немного смущает, можно ли как-то это дело по другому сделать, или в целом с точки зрения кода норм?

2) второй вопрос, как быть с данными которые получаются после просчета машины,
их достаточно много, примерно 40 параметров которые складываются из 15 обвесов и самого авто
можно ли их както хранить временно? для манипуляции с ними в дальнейшем, а потом грубо говоря сохранить их при выходе из игры (смотрел в сторону сессий, но смущает безопасность и не удобность использования)

или все-же лучше сразу обращаться в базу перезаписывать значения и по новой пересчитывать все параметры?
в данном случае, пересчет все равно придется делать, а это опять 15 запросов=(
-----------------------------------
Предположим что игрок примерет обвесы на машину, чтоб посмотреть как изменятся показатели авто, за пару минут он может поменять обвес раз 120, грубо говоря если менят каждую секунду...это мягко говоря меня пугает.

Буду благодарен за ваши советы и предложения=)
Форум игроделов » Записи участника » FreeZa [4]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг