Из select option в БД

UndeadFun

Новичок
Есть база, в ней таблицы: Supplier(Поставщики) и Income(Поставки). В Supplier поля: ID, name_of_partner.
В Income - id,date_of_income, supplier, full_b, empty_b, partner_id. Связь между таблицами по полям supplier.id(primary key) - income.partner_id(foreign key).

Цель: сделать форму добавления поставки, таким образом чтобы поставщика можно было выбирать из выпадающего selecta.
Делаю так:
PHP:
<select name="supplier" type="text" value="">
			<option>Выберите поставщика</option>
			<?php while($row=mysql_fetch_array($result)) { 
			?>
			<option value> 
			<?=$row['name_of_partner']
			?>
			</option>
			<? } ?>
		</select>
		<select name="idi" type="text" value="">
			<option>айди</option>
			<?php while($row=mysql_fetch_array($result1)) { 
			?>
			<option value> 
			<?=$row['id']?>
			</option>
			<? } ?>
		</select>
И потом загоняю в базу следующим образом:
PHP:
$result=mysql_query("INSERT INTO income (date_of_income, supplier, full_b, empty_b, partner_id) VALUES('$_POST[date_of_income]','$_POST[supplier]','$_POST[full_b]','$_POST[empty_b]','$_POST[idi]')");
В итоге запись в Income появляется, но поле Supplier пусто, а partner_id=0. Если же не выбирать поставщика, а оставить в поле selecta стандартное сообщение, то оно заносится в поле Supplier. Буду благодарен за любые советы.
 

UndeadFun

Новичок
Ну вот собственно весь синтаксис:
PHP:
<select>
<option>'значение'</option>
</select>
Чего тут разбираться-то?
 

С.

Продвинутый новичок
Ну вот собственно весь синтаксис
Чего тут разбираться-то?
Замечательно! С синтаксисом <option> почти разобрались. Переходи ко второму этапу -- разобраться с тем говном, которое у тебя в коде вместо <option> с положенным синтаксисом.
 

UndeadFun

Новичок
Понял, что тупица)
А не подскажете, что нужно пихать в value, и как потом средствами php обрабатывать?
попробовал так:
PHP:
<select name="supplier" type="text" value="supplier">
			<option>Выберите поставщика</option>
			<?php while($row=mysql_fetch_array($result)) { 
			?>
			<option value="<?php $row['name_of_partner']?>"> 
			<?=$row['name_of_partner']
			?>
			</option>
			<? } ?>
		</select>
		<select name="idi" type="text" value="">
			<option>айди</option>
			<?php while($row=mysql_fetch_array($result1)) { 
			?>
			<option value="<?php $row['id']?>"> 
			<?=$row['id']?>
			</option>
			<? } ?>
не получилось...
 

UndeadFun

Новичок
Получлось, следующим образом:
PHP:
<option value="<?=$row['name_of_partner']?>"> 
			<?=$row['name_of_partner']
			?>
			</option>
Остался только один маленький вопросик. А как теперь сделать так, чтобы при выборе поставщика, его id выбирался автоматически. Простите за назойливость)
 

Вурдалак

Продвинутый новичок
А как теперь сделать так, чтобы при выборе поставщика, его id выбирался автоматически. Простите за назойливость)
Какой ещё id? Пользователь не должен выбирать id, он не робот.
PHP:
<option value="<?=$row['id']?>"> 
            <?=htmlspecialchars($row['name_of_partner'])?>
            ?>
            </option>
?
 

UndeadFun

Новичок
Я именно это и имел ввиду. Как сделать так, чтобы пользователь не выбирал id, из таблицы supplier.
Другими словами я выбираю только Имя поставщика, а в таблицу income переносится не только поле name_of_partner, но и id, соответствующий ему заносится в partner_id. Как показано выше не получилось.
 

С.

Продвинутый новичок
Если тебе передали id, то найти по нему name_of_partner не составит большого труда.

Или составит?
 

Вурдалак

Продвинутый новичок
UndeadFun, ты (визуально) выбираешь имя, а на сервер должен передаваться только числовой идентификатор, соответствующий этому имени. Тебе нужен один <select>, а не два.
 

UndeadFun

Новичок
А нельзя ли кодом объяснить. Простите за наглость, конечно, но никак не въеду!
 

UndeadFun

Новичок
дк а что именно писать в id=...я ж так понимаю, что нужно как-то со страницы передавать параметр в этот запрос. А как мы можем передать параметр id, если пользователь выбирает name_of_partner?
 

С.

Продвинутый новичок
Делаем лирическое отступление и разбираемся, как работают формы и <select> в частности.
 

SkyLine

Новичок
А нельзя ли кодом объяснить. Простите за наглость, конечно, но никак не въеду!
Пишем так:
PHP:
<select name="supplier">
<?php echo "<option value='".$row['id']."'>".$row['name_of_partner']."</option>"; ?>
</select>
Таким образом пользователь выбирает из списка $row['name_of_partner'], а после отправки данных формы в переменной $_POST["supplier"] будет $row['id']. Так понятно?
 
Сверху