2013-02-05 33 views
0

因此,我有一個模擬手機網站的數據庫,該數據庫已根據規範構建。我的數據庫有一個名爲phones的表,一個名爲operatingsystem的表和一個名爲manufacturer的表。我需要創建一個表單來將新手機輸入到數據庫中。我碰到的問題是:使用來自多個表格的信息輸入新的/編輯現有的數據庫記錄

我需要基本上得到的表格添加一個新的記錄到電話表。但是,電話也會從其他表中提取數據。這方面的一個例子是我如何將操作系統(iOS,Android,BlackBerry和Windows Phone)分開存儲在操作系統表中,並且每個操作系統都分配了一個ID(1,2,3和4)以及製造商存儲在製造商表(HTC,Samsung,Apple等)中,每個表都有一個自動增量ID。我不知道如何設計表單,以便用戶只需使用表單即可將新手機添加到數據庫,或者如果需要,可以將新制造商/操作系統添加到數據庫。我必須這樣做,假設用戶添加電話/編輯現有的電話沒有訪問數據庫,所以顯然他們不知道製造商ID 1是蘋果,2三星等。

我基本上需要使用HTML表單和附帶的PHP頁面的組合,以便可以從數據庫中完全添加,編輯或刪除電話。我將在表單設計方面做些什麼,以及我需要使用哪些PHP才能夠從多個表中添加/編輯/刪除數據?

對不起,對於冗長的帖子,但任何幫助將不勝感激,如果需要更多的細節,請不要猶豫,問。謝謝。

回答

1

對於選擇製造商和操作系統,<select>元素是明顯的選擇。它會創建一個帶有可選選項的下拉菜單,傳遞的值與用戶看到的內容之間可能存在分隔。

所以,如果你有這樣的:

<select name="manufacturer"> 
    <option value="1">Apple</option> 
    <option value="2">HTC</option> 
    <option value="3">Samsung</option> 
</select> 

則用戶將看到蘋果,HTC和三星作爲選項。如果他們選擇三星,那麼實際上會提交什麼參數的值爲3(這將對應於您的表中的ID)。

1

對於一個簡單/快速的解決方案,@Anthony Grist的答案會做到這一點。但是,如果您打算構建一個自動生成的自動化系統,您需要使用已經存在的選項從PHP構建<select>,並允許用戶通過不同的CRUD在<select>內添加內容。問題在於用戶可以插入iOS,iOS 5,iOS 6,iOSasdf等;因爲他們希望,因爲你不能夠阻止這麼多。如果這是你想要去的情況,我建議你創建一個表格,你可以使用它來提供<select>,其中你將擁有operation_systemtable_name。如果添加了新的操作系統,您可以使用PHP爲該操作系統創建一個新表,然後將其添加到該表中。當用戶在選擇選項中選擇操作系統時,您將選擇該表並將記錄插入到該表中。

+0

我回答的含義是,他們會動態地建立選擇,我只是不認爲有必要明確地說出來。更不用說,我不知道PHP,所以在這方面提供甚至含糊不清的代碼不會是一種選擇。我也會說,每個操作系統一個表是糟糕的數據庫設計;用於存儲手機的表格應使用正確的「id」鏈接到操作系統和製造商表格。 –

相關問題