2012-03-28 30 views
0

から外部キーIDを持つテーブルに挿入します(ID)、(名)MySQLの私は2つのテーブル持っている別の

:(名)、(p_category_id) p_category、(IDの自動INC): p_modelを基本的にすべてのモデルはカテゴリに関連付けられています。新しいモデルを挿入し、それに関連付けられたp_categoryのIDを追加するINSERT文を生成する必要があります。

私の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. 

.... 
} 

関数の例コールが$データベース - > Perform_Insert_Model( "バナナ"、 "果物")になります。バナナは新しい製品モデルとなり、果物のIDの外部キー協会を持っています。

答えて

1

あなたは、クエリのこの種を試すことができます(これは単なる1クエリです):

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

注:これは特定のカテゴリ名によってのみ、1カテゴリがあると仮定したり、それはp_model

+0

に複数のレコードを挿入します完璧なおかげです。 SELECT '$ model_name'ではなくSELECT 'id'が必要なため、正確には機能しませんでした。 INSERT INTO製品( 'model'、' type_id')SELECT '$ p_model_name'、 'id' FROM' product_types' WHERE 'desc' = '$ p_type_name'を使用して、 – Vidarious

関連する問題