Здравствуйте. Прошу совета по организации сайта. Только начал изучать PHP, опыта нет.
Хочу создать кулинарный сайт такого плана: пользователь вводит ингредиенты и делает запрос, а в ответ получает рецепты блюд, состоящие из указанных пользователем ингредиентов. Пользователь может добавлять рецепты.
Количество ингредиентов, которые введет пользователь, не известно. Список всех ингредиентов есть в базе, планирую его загружать в select, мыслю в сторону того, что пользователь выбирает в select ингредиент и жмет кнопку добавить, таким образом выбираются основные ингредиенты и отображаются в каком ни будь элементе (пусть текстарей). Затем пользователь нажимает кнопку запроса и производится поиск в базе рецептов, состоящих из указанных пользователем ингредиентов.
Не прошу писать код, просто нужен совет, как это организовать.
1. Nikola - 14 Августа, 2009 - 16:36:27 - перейти к сообщению
2. Ch_chov - 14 Августа, 2009 - 19:57:42 - перейти к сообщению
Посчтитай примерно сколько всего ингредиентов будет.
Выпадающий список будет огромный...
Разбей ингредиенты на категории: овощи, мясо, рыба и т.д. Для каждой категории сделай свой выпадающий список, который кстати можно сделать с множественным выбором (MULTIPLE).
Выпадающий список будет огромный...
Разбей ингредиенты на категории: овощи, мясо, рыба и т.д. Для каждой категории сделай свой выпадающий список, который кстати можно сделать с множественным выбором (MULTIPLE).
3. Nikola - 14 Августа, 2009 - 20:39:54 - перейти к сообщению
Ch_chov
Идею понял большее спасибо, остается вопрос о том, как это писать в базу а затем каким запросом искать совпадение ингредиентов.
Идею понял большее спасибо, остается вопрос о том, как это писать в базу а затем каким запросом искать совпадение ингредиентов.
4. EuGen - 15 Августа, 2009 - 15:46:21 - перейти к сообщению
На входе у Вас (то есть у Вашего скрипта) будет список ингридиентов, которые ввел пользователь - вне зависимости от того, каким образом ввел.
В БД их хранить целесообразно как обычно - парой: идентификатор-значение. В данном случае значением будет просто название.
Рецепты - тоже таблица. С отношением "многие-ко-многим" с таблицей ингридиентов.
Организовать можно так - сама таблица рецептов - есть просто такой же список строк "идентификатор-значение". То есть номер рецепта-название рецепта.
Затем сделаете таблицу-связку, где будете хранить идентификатор рецепта-идентификатор ингридиента.
Для примера (не силен в кулинарной области) - есть рецепт "Яичница". В нее входят ингридиенты "яйцо", "молоко". Вот как будет выглядеть:
recepts
В БД их хранить целесообразно как обычно - парой: идентификатор-значение. В данном случае значением будет просто название.
Рецепты - тоже таблица. С отношением "многие-ко-многим" с таблицей ингридиентов.
Организовать можно так - сама таблица рецептов - есть просто такой же список строк "идентификатор-значение". То есть номер рецепта-название рецепта.
Затем сделаете таблицу-связку, где будете хранить идентификатор рецепта-идентификатор ингридиента.
Для примера (не силен в кулинарной области) - есть рецепт "Яичница". В нее входят ингридиенты "яйцо", "молоко". Вот как будет выглядеть:
recepts
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- +-----------+---------+
- | recept_id | title |
- +-----------+---------+
- | 1 | Яичница |
- +-----------+---------+
ingridients
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- +---------------+--------+
- | ingridient_id | title |
- +---------------+--------+
- | 1 | Яйцо |
- +---------------+--------+
- | 2 | Молоко |
- +---------------+--------+
recepts_ingridients
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- +-----------+---------------+
- | recept_id | ingridient_id |
- +-----------+---------------+
- | 1 | 1 |
- +-----------+---------------+
- | 1 | 2 |
- +-----------+---------------+