2012-03-08 50 views
0

發送HTML表單數據,以兩個獨立的表在數據庫中,我有這2個表:使用SQL和PHP

ornaments (ornament_id, ornament_name) 
ornament_to_size (ornament_id, size_id, ornament_type, colour, material, finish, height, width, weight, location, price, description, image_path) 

我想創建管理形式插入一個新的裝飾項目到數據庫中。這樣做的最好方法是什麼?我需要在兩個表格中插入,這對我來說更加困難。飾品表中的ornament_id顯然是PK,而ornament_to_size表中的PK是ornament_id和size_id作爲組合鍵。

的原因還有一個裝飾品尺寸表是因爲裝飾品可以有多種尺寸,像這樣:

ornament_id = 3 & size_id = 1 
ornament_id = 3 & size_id = 2 
ornament_id = 3 & size_id = 3 

我只是想知道什麼樣的方法是不實際的代碼

+0

有幾種方法可以動態地將輸入添加到表單,以便您可以通過單一提交表單來輸入多個ornament_to_size行。 (或者如果你知道你只想提交3個ornament_to_size行,那麼你可以爲ornament_to_size行添加3個靜態輸入集。)現在我必須問:size_id是否真的是一個id?這意味着它是另一個表(也許命名大小)的ID? – ghbarratt 2012-03-08 08:08:58

+0

對不起,我要說我有一個尺寸表,每個尺寸的名稱都對應於尺寸標識。而且,每個裝飾品可以具有不同的尺寸,其具有不同的尺寸測量。因此,一件裝飾品可以歸類爲「小」,另一件裝飾品也可歸類爲其他裝飾品 - 但它們可能具有不同的尺寸 – user1227124 2012-03-08 09:10:01

+0

好的,但方法基本上與我之前描述的相同:您將收集新裝飾品的信息爲以及相同形式的不同關聯大小(可能會隨着輸入可以動態添加更多大小)。在服務器端,您將收集裝飾品的信息,並首先插入這些信息,以便您可以獲取剛剛插入的裝飾品的ornament_id(可能使用['lastInsertId'](http://pt2.php.net/manual/en /pdo.lastinsertid.php)),您將需要插入裝飾尺寸行。這是否回答這個問題? – ghbarratt 2012-03-08 09:29:31

回答

1

如果尺寸表中有已經得到了價值,你有兩個選擇,讓用戶插入數據:

  • 選擇,如果你想要讓用戶添加一個新的價值

  • 複選框場,如果你想用戶插入不止一個,
    記得把它命名爲「checkboxname []」,使PHP可以使用它作爲 數組。

在這兩種情況下都使用大小的id作爲值。 在數據庫插入部分,你將不得不解析表單數據,然後執行:

  • 一個插入到裝飾表,直接執行後 LastInsertId()查詢(這是PDO的功能,但你可以把它在mysql ),並將結果保存在一個變種。
  • 使用 您保存爲deco_id值的var執行後續查詢到ornament_to_size表中。

請記住,如果你有選擇使用複選框你可以運行帶有$ _ POST [「checkboxname []」]插入所有的感謝到PHP如何閱讀後新行一個foreach。

+0

感謝您的幫助伴侶。我有點得到它。我將不得不考慮它。 – user1227124 2012-03-08 10:08:27