2015-01-01 5 views
0

У меня есть раскрывающееся меню, которое показывает категории из базы данных (таблица category, с двумя столбцами: category_id и category_name). Вторая таблица: photo s и имеет внешний ключ category_id.Сохранить значение из выпадающего меню в базу данных (php, mysql)

код, который показывает выпадающее меню из базы данных:

$sql = "SELECT category_id, category_name FROM category"; 

$result = mysql_query($sql); 

echo "<select name='category_name'>"; 
while ($row = mysql_fetch_array($result)) { 
echo "<option value='" . $row['category_name'] . "'>" . $row['category_name'] . "</option>"; } 

echo "</select>"; 

Теперь я не знаю, как сохранить выбранный вариант категории в базе данных. Любая помощь оценивается ...

+0

На форме пост, используйте '$ _POST [«category_name»] ', чтобы получить значение, а затем сделать 'INSERT INTO фотографии ....'? – Sean

ответ

1

, что тяжелый: D

(1) вам нужно будет приложить выберите элемент в форме (форма является HTML-элемент, который содержит данные и могут быть представлены полностью на сервер, узнать больше о формах здесь http://www.w3schools.com/html/html_forms.asp)

<form action='x.php' method='post'> 
 
    <select ..... 
 
</form> 
 

где х путь к файлу PHP, в котором мы проведем необходимую пр ocessing, чтобы сохранить наши данные

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

echo "<option value='{$row['category_id']}'>{$row['category_name']}</option>";

(3) в настоящее время в x.php, нам нужно прочитать значение поля и сохранить его в БД

<?php 
 
    $value = $_POST['category_name']; 
 
    // $value now stores the selected category 
 
?>

Все, что вам нужно сделать сейчас, чтобы сохранить значение в базе данных с помощью функции My SQL запросов

+0

Большое спасибо, я попробую. Могу ли я использовать тот же файл для действия (action = ''), или он должен быть другим файлом (action = 'x.php')? – Piipsy

+0

вы можете использовать любой файл, если вы не указали действие или не установили его в пустую строку (action = '') => действие по умолчанию будет текущим файлом, но в этом случае нам нужно сделать дополнительный файл состояние. Есть 2 ситуации: первая - это когда вы запускаете файл в первый раз ==> в этой ситуации ничего не сохранять, а значение $ пусто, второе - когда данные передаются в текущий файл, и здесь нам нужно для хранения данных не показывать выбор, простое условие if может заполнить этот

+0

попробуйте, если у вас все еще есть проблема, вы можете прокомментировать! –

0
echo "<option value='" . $row['category_name'] 
    . "'>" . $row['category_name'] . "</option>"; 

Вы пишете category_name в значении поля опции, но вы, вероятно, захотите использовать category_id здесь.

После отправки пользователем вы можете получить идентификатор категории с $_POST['category_name']. Это потому, что ваша форма имеет имя category_name, вы можете изменить название формы на category_id.

0

Во-первых, вы можете изменить имя выбора на «category_id» и значение параметра «category_id» (поскольку это значение, которое вы будете сохранять в db). Затем вам необходимо обернуть ваши варианты выбора в теге формы. Ваш метод формы будет «post», и действие может быть чем-то вроде save_category.php. В вашем файле save_category.php вам необходимо собрать сообщение следующим образом: $_POST['category_id'] и вставить в базу данных с запросом аналогично тому, как вы извлекли category_id и category_name.

Смежные вопросы