2014-10-16 2 views
0

Я относительно новичок и для PHP, и для MySQL, и вот мой первый вопрос:HTML-форма: вставить идентификатор в связанную таблицу

У меня есть 3 таблицы. Один из них - «главная таблица» и два - как в основном списки/категории, которые я могу выбрать, и связать их с моей основной таблицей.

Таблица 1

id name hobby color 
1  Peter 1  2 
2  Simon 3  2 
3  Lisa 2  3 

Таблица 2 затем будет хобби

id name 
1  Swimming 
2  Football 
3  Piano 

То же самое с таблицей 3 и цветов.

id name 
1  red 
2  blue 
3  green 

Теперь, мне удалось «связать» таблицы с PHPMyAdmin, но как я могу сделать следующее:

Я хочу, чтобы вставить данные в первую таблицу. Проблема в том, что я хочу вставить простое число в хобби или цвета, но в HTML-форме должен быть текст, связанный с.

Так что, если я выбираю «зеленый» (в виде строки), он должен вставить 3 в таблице 1.

Я надеюсь, что это ясно, что я ищу делать. Спасибо за любую помощь заранее.

Simon

ответ

0

Это вы что искали?

INSERT INTO table1 (name, hobby, color) VALUES ('Tom', (SELECT id from Table2 WHERE name = 'Swimming'), (SELECT id from Table3 WHERE name = 'green') );

Обратите внимание, если заказ на это, чтобы правильно работать столбец Имени должен быть уникальным, иначе вы могли бы получить «запрос возвращает более одной строки» ошибку.

Кроме того, я бы написал этот оператор как хранимую процедуру для обеспечения безопасности и дополнительной проверки ошибок.

+0

@ предложение Gervs в ниже также работает, но он показывает значения ID, который может быть проблемой безопасности (жаль, что я не хватает респ комментировать; P) –

0

Вы можете сделать это в HTML

<select name="hobbies"> 
    <option value="1">Swimming</option> 
    <option value="2">Football</option> 
    <option value="3">Piano</option> 
</select> 
Смежные вопросы