2012-03-28 3 views
0

У меня есть две таблицы: p_model: (ID авто вкл), (имя), (p_category_id) И p_category: (идентификатор), (имя)MySql Вставка в таблицу с внешним ключом ID из другого

В основном каждая модель связана категорией. Мне нужно создать инструкцию INSERT, которая вставляет новую модель и добавляет идентификатор связанной с ней p_category.

Мой PHP Функция Передает оба значения:

function Perform_Insert_Model($model_name, $category_name) 
{ 
$statement = "INSERT INTO p_model(`name`,`p_category_id`) VALUES ('$model_name','??????')"; 

//Where the "??????" is I need a statement that searches for $category_name (string) in the p_category table and returns the id. 

.... 
} 

Пример вызова функции будет $ database-> Perform_Insert_Model ("банан", "Фрукты"). Тогда банан станет новой моделью продукта и будет иметь ассоциацию внешних идентификаторов фруктов.

ответ

1

Вы можете попробовать этот вид запроса (это только один запрос):

INSERT INTO p_model(`name`,`p_category_id`) SELECT '$model_name', `p_category_id` 
    FROM p_category WHERE `category_name`='$category_name'; 

Примечание: это предполагает, что есть только одна категория по данному имя_категории или он будет вставить несколько записей в p_model

+0

Прекрасное спасибо. Это не сработало, потому что ему нужен SELECT 'id', а не SELECT '$ model_name'. Я закончил использовать (обратите внимание, что я изменил имя таблиц): INSERT INTO product ('model',' type_id') SELECT '$ p_model_name', 'id' FROM' product_types' WHERE 'desc' = '$ p_type_name' – Vidarious

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