Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
Здравствуйте. Прошу совета по организации сайта. Только начал изучать PHP, опыта нет.
Хочу создать кулинарный сайт такого плана: пользователь вводит ингредиенты и делает запрос, а в ответ получает рецепты блюд, состоящие из указанных пользователем ингредиентов. Пользователь может добавлять рецепты.
Количество ингредиентов, которые введет пользователь, не известно. Список всех ингредиентов есть в базе, планирую его загружать в select, мыслю в сторону того, что пользователь выбирает в select ингредиент и жмет кнопку добавить, таким образом выбираются основные ингредиенты и отображаются в каком ни будь элементе (пусть текстарей). Затем пользователь нажимает кнопку запроса и производится поиск в базе рецептов, состоящих из указанных пользователем ингредиентов.
Не прошу писать код, просто нужен совет, как это организовать.
Ch_chov
Отправлено: 14 Августа, 2009 - 19:57:42
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Посчтитай примерно сколько всего ингредиентов будет.
Выпадающий список будет огромный...
Разбей ингредиенты на категории: овощи, мясо, рыба и т.д. Для каждой категории сделай свой выпадающий список, который кстати можно сделать с множественным выбором (MULTIPLE).
Nikola
Отправлено: 14 Августа, 2009 - 20:39:54
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
Ch_chov
Идею понял большее спасибо, остается вопрос о том, как это писать в базу а затем каким запросом искать совпадение ингредиентов.
EuGen
Отправлено: 15 Августа, 2009 - 15:46:21
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
На входе у Вас (то есть у Вашего скрипта) будет список ингридиентов, которые ввел пользователь - вне зависимости от того, каким образом ввел.
В БД их хранить целесообразно как обычно - парой: идентификатор-значение. В данном случае значением будет просто название.
Рецепты - тоже таблица. С отношением "многие-ко-многим" с таблицей ингридиентов.
Организовать можно так - сама таблица рецептов - есть просто такой же список строк "идентификатор-значение". То есть номер рецепта-название рецепта.
Затем сделаете таблицу-связку, где будете хранить идентификатор рецепта-идентификатор ингридиента.
Для примера (не силен в кулинарной области) - есть рецепт "Яичница". В нее входят ингридиенты "яйцо", "молоко". Вот как будет выглядеть: recepts
Соответственно при поиске - нужно в таблице recepts_ingridients найти все идентификаторы рецептов, которые попадут в условие пользователя. Другими словами, мы найдем рецепты, в которые входит хотя бы один из указанных ингридиентов (слабое условие).
Вообще почитайте про теорию реляционных БД. Специально не привожу подхода на случай, если нужны рецепты, в которые входят все из указанных ингридиентов (задача чуть сложнее, найдете сами).
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Nikola
Отправлено: 15 Августа, 2009 - 22:17:23
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
EuGen
Большое спасибо за помощь, дальше, я думаю, разберусь.
Nikola
Отправлено: 24 Августа, 2009 - 22:16:28
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
Ну вот я слепил свой первый сайт http://kitchen[dot]50gigs[dot]net/www/index.php его конечно нужно дорабатывать и наполнить немного. В меню поиск можно искать блюда, правда есть только одна запись в базе, поэтому можно выбрать : тип-второе, продукты-молоко коровье, яйца куриные. В меню добавить можно добавить рецепт. Вот только кнопочки не изменяются при нажатии и наведении, но может это из-за моего медленного жпрс интернета.
Код кнопочки:
Еще раз большее спасибо за помощь, буду рад любой критике.
SAD
Отправлено: 24 Августа, 2009 - 22:24:19
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
bed, very bed.
десерт, а не дисерт
в продуктах разве не может быть выбор нескольких ингредиентов?
Nikola
Отправлено: 24 Августа, 2009 - 22:34:32
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
SAD
За грамматические ошибки извиняюсь, поправлю, а вот продукты можно выбирать зажимая Ctrl.
SAD
Отправлено: 24 Августа, 2009 - 22:41:34
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
Nikola пишет:
продукты можно выбирать зажимая Ctrl
сразу и не догадаешься
Nikola
Отправлено: 24 Августа, 2009 - 22:47:09
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
SAD пишет:
сразу и не догадаешься
Ну это нужно дописать, в таких случаях пишут что то типа: "для выбора нескольких элементов зажмите Ctrl".
SAD
Отправлено: 24 Августа, 2009 - 22:52:05
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
если честно, то дизайн выбора - не очень красив ,не удобен
Nikola
Отправлено: 24 Августа, 2009 - 22:55:10
Новичок
Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009 Откуда: Одесса, Украина
Помог: 0 раз(а)
SAD пишет:
то дизайн выбора - не очень красив ,не удобен
В чем именно и как, на Ваш взгляд, было бы лучше ? Я только начал заниматься web программированием, поэтому буду рад совету.
SAD
Отправлено: 24 Августа, 2009 - 23:10:39
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
да я и сам начинающий, просто с точки зрения пользователя не удобно.может для продуктов использовать типа скрытые списки. ну вобщем я не советчик.
EuGen
Отправлено: 25 Августа, 2009 - 01:01:02
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
SAD пишет:
bed, very bed.
А еще указываете на грамматические ошибки, когда сами их допускаете.
Автор может использовать комбобокс
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Champion
Отправлено: 25 Августа, 2009 - 08:56:02
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
EuGen пишет:
SAD пишет:
bed, very bed.
А еще указываете на грамматические ошибки, когда сами их допускаете.
Может, он просто спать захотел?
А так, для первого сайта нормально. Функционал реализовывается, с БД простоые вещи смог выполнять. Теперь я бы отстранился от php и углубился в работу с БД, чтоб более уверено чувствовать такие вещи как вывод списков по категориям, добавление в БД из этих списков...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.