Intereting Posts
Добавление двух чисел в php и сохранение ведущих нулей Как запустить исполняемый файл с сайта PHP в качестве конкретного пользователя Windows? WordPress url rewriting – хороший URL с именем от SugarCRM Как загрузить изображения из приложения iPhone, разработанного с использованием Titanium Удалять изображения из html так же, как gmail для электронных писем без включенного изображения Ошибка при монтировании через php "exec" Как создать ссылку, которая запускает загрузку файла? Heroku deploy автоматически удаляет файлы сервера? PHP FPM возвращает HTTP 500 для всех ошибок PHP glob () – сортировать по дате javascript внутри php while loop Кодирование файлов cookie, чтобы их нельзя было подделать или читать и т. Д. Приложение Twitter oauth начало возвращать код ошибки 89 Недействительный или истекший токен после 1 года работы Принять международные имена в RegEx PHP mcrypt_decrypt – могу ли я определить, расшифровывается ли информация с помощью правой клавиши?

Учебники для выпадающего меню в PHP

Я по-прежнему новичок в PHP, и я немного узнал от сообщества, но мне еще многое предстоит узнать, и я надеялся, что вы, ребята, можете дать мне совет по этому вопросу.

Мой вопрос – о выпадающих меню. В настоящее время у меня есть раскрывающееся меню, которое извлекает информацию из таблицы. Информация отображает ингредиенты, которые я могу выбрать из выпадающего меню. Теперь я хочу иметь возможность использовать эти ингредиенты для поиска рецептов в моей таблице рецептов, но я не знаю, как это сделать.

Таблица моих ingredients содержит два поля.

ingredient id и recipe id

Моя таблица recipe содержит два поля

recipe id и recipe name

Таблица recipeingredients которая представляет собой составной ключ, имеет два поля

recipe id и ingredient id

Мой HTML-код ниже – выпадающее меню

 <form id="searchForm"> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="GET"> <h3> Search your recipe here </h3> <fieldset> Ingredient 1:<select name= "dropdown1" id = "drop1"/> <?php while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)) { ?> <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option> <?php } ?> </select> Ingredient 2:<select name = "dropdown2" id = "drop2"/> <?php while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) { ?> <option value="<?php echo $line['ingredientname'];?>"> <?php echo $line['ingredientname'];?> </option> <?php } ?> <input type="submit" value="Go!" /> <input type="submit" value="Search" /> </form> 

У меня такое чувство, что мне может понадобиться присоединиться, но, как я уже сказал, я новичок в этом, поэтому, пожалуйста, будьте осторожны.

Solutions Collecting From Web of "Учебники для выпадающего меню в PHP"

Вот как я это сделаю. Схема первая:

 CREATE TABLE ingredients ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(40) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE recipe ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(40) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE recipe_ingredients ( recipe_id INTEGER, ingredient_id INTEGER ); 

Теперь для запроса. Все рецепты, содержащие нумерованный ингредиент:

 SELECT recipe.name FROM recipe INNER JOIN recipe_ingredients ri ON (recipe.id = ri.recipe_id) WHERE ri.ingredient_id = 1; 

Все рецепты, содержащие по крайней мере один из нескольких ингредиентов:

 SELECT DISTINCT recipe.name FROM recipe INNER JOIN recipe_ingredients ri ON (recipe.id = ri.recipe_id) WHERE ri.ingredient_id IN (1, 2, 5); 

Или, если вы хотите найти по имени ингредиента:

 SELECT recipe.name FROM recipe INNER JOIN recipe_ingredients ri ON (recipe.id = ri.recipe_id) INNER JOIN ingredients i ON (ri.ingredient_id = i.id) WHERE i.name = 'egg'; 

Первый из этих запросов немного быстрее, так как есть меньше объединений, и быстрее искать целочисленный ключ, чем строку. Тем не менее, с объемами данных, которые вы, вероятно, имеете в виду здесь, вероятно, не будет иметь большого значения. Вещь, которую следует помнить с помощью объединений, заключается в том, что, пока ваш дизайн таблицы прост, просто присоедините «соответствующие» элементы (например, первичный ключ с внешним ключом), а затем SELECT столбцы SELECT до того, что вам нужно.

Я сделал живую демоверсию .