Я делаю простую приключенческую игру на основе опций, используя PHP и базу данных mySQL в phpMyAdmin. Я настроил его так, чтобы события в игре были объектами в таблице под названием «События». Параметры, которые вы можете выбрать для каждого события, находятся в таблице, называемой Действия. Эти два имеют отношение многие ко многим, потому что некоторые действия могут быть предприняты для нескольких событий. Поэтому я создал таблицу соединений под названием EventActions. Я могу успешно запросить, какие действия должны быть доступны для события с внутренним объединением, используя эту таблицу соединений:
public static function getActions($eventID){
$db = Database::getDB();
$query = 'SELECT * FROM eventactions ea
INNER JOIN actions a ON a.actionID = ea.actionID
WHERE ea.eventID = :eventID';
$statement = $db->prepare($query);
$statement->bindValue(":eventID", $eventID);
$statement->execute();
$actions = $statement->fetchAll(PDO::FETCH_ASSOC);
$statement->closeCursor();
return $actions;
}
Однако, ситуация становится непростой, когда я пытаюсь включить необходимость определенных элементов для выполнения определенных действий. Я также пытаюсь включить необходимость делать определенные вещи для определенных действий, чтобы показать. Это привело меня к созданию таблиц для Предметов и Эффектов и соединительных таблиц для ItemActions и effectActions. Так что теперь моя функция запроса к базе данных должна быть намного более сложной, и у меня возникли проблемы с наведением порядка на запрос. Мне нужен запрос, который по существу получает из базы данных: все действия, которые связаны с данным событием, а также элементы и столбцы, которые связаны с этим действием. Я пытался что-то вроде этого, но он не возвращает никаких строк:
select * from eventactions ea
inner join actions a on a.actionID = ea.actionID
inner join actionitems ai on ai.actionID = a.actionID
inner join actioneffects ae on ae.actionID = a.actionID
inner join worldeffects e on e.effectID = ae.worldEffect
where ea.eventID = :event
То, что я хочу вернуть из этой функции, это список всех параметров, доступных для данного события. Для каждого параметра мне нужны столбцы из таблицы «Действия», из таблицы «Элементы» (поэтому я знаю, какие элементы требуются для этого параметра) и из таблицы «Эффекты» (поэтому я знаю, какое влияние на мир оказывает параметр и каковы мировые эффекты. требуется, чтобы опция была доступна).
Дайте мне знать, если я не включаю необходимую информацию. Спасибо!