2010-04-21 141 views
0

我是新來的PHP和MySQL,我試圖學習如何從三個不同的陣列friend[], hair_type[], hair_color[]使用MySQL和PHP存儲以下陣列數據的例子會很好。謝謝如何使用PHP和MySQL在MySQL數據庫中存儲數組數據?

這裏是HTML代碼。

<input type="text" name="friend[]" id="friend[]" /> 

<select id="hair_type[]" name="hair_type[]"> 
    <option value="Hair Type" selected="selected">Hair Type</option> 
    <option value="Straight">Straight</option> 
    <option value="Curly">Curly</option> 
    <option value="Wavey">Wavey</option> 
    <option value="Bald">Bald</option> 
</select> 

<select id="hair_color[]" name="hair_color[]"> 
    <option value="Hair Color" selected="selected">Hair Color</option> 
    <option value="Brown">Brown</option> 
    <option value="Black">Black</option> 
    <option value="Red">Red</option> 
    <option value="Blonde">Blonde</option> 
</select> 





<input type="text" name="friend[]" id="friend[]" /> 

<select id="hair_type[]" name="hair_type[]"> 
    <option value="Hair Type" selected="selected">Hair Type</option> 
    <option value="Straight">Straight</option> 
    <option value="Curly">Curly</option> 
    <option value="Wavey">Wavey</option> 
    <option value="Bald">Bald</option> 
</select> 

<select id="hair_color[]" name="hair_color[]"> 
    <option value="Hair Color" selected="selected">Hair Color</option> 
    <option value="Brown">Brown</option> 
    <option value="Black">Black</option> 
    <option value="Red">Red</option> 
    <option value="Blonde">Blonde</option> 
</select> 

下面是MySQL表格。

CREATE TABLE friends_hair (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
hair_id INT UNSIGNED NOT NULL, 
user_id INT UNSIGNED NOT NULL, 
PRIMARY KEY (id) 
); 


CREATE TABLE hair_types (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
friend TEXT NOT NULL, 
hair_type TEXT NOT NULL, 
hair_color TEXT NOT NULL, 
PRIMARY KEY (id) 
); 
+0

您是否試圖存儲每個選擇的選項,或從窗體的結果,或兩者? – hookedonwinter 2010-04-21 15:24:14

+0

我試圖存儲用戶的結果。 – Cyn 2010-04-21 15:25:15

回答

1

爲頭髮類型,頭髮顏色和朋友創建表格。

髮型和髮色每個都需要主關鍵字idname字段。

朋友需要主密鑰id,以及name,hair_type_idhair_color_id的字段。

使頭髮類型和頭髮的值爲數據庫中各自的ID。

當您提交表單時,循環訪問$ _POST ['friend']數組,向好友數據庫中插入好友姓名,頭髮類型ID和頭髮顏色ID。

不要忘記清理輸入。查看mysql_real_escape_string()的例子。

如果您需要進一步的幫助,我可以做出更詳細的說明。

+0

我的桌子有什麼問題?你失去了我。 – Cyn 2010-04-21 15:37:37

+0

我假設朋友是您感興趣的數據,頭髮類型和頭髮顏色只是不會經常更改的列表類型。使用我的方法,您可以將這些列表放在自己的表格中,如果需要可以輕鬆添加列表,然後朋友表格會將每個朋友的姓名與他們的頭髮顏色和類型相關聯。如果這是有道理的 – hookedonwinter 2010-04-21 15:45:01

0

假設你只能有一個頭發類型和每個用戶一個髮色然後檢查pastie一個簡單的答案:http://pastie.org/928039

讓我們面對它,你不能在同一時間有波浪捲髮和直髮現你可以嗎 ?顏色可能會有所不同在這種情況下,這是一個多對多的,所以你需要一個user_hair_colour表user_hair_colour(user_ID的PK,hair_colour_id PK):P

select 
    u.*, 
    hc.name as hair_colour_name, 
    ht.name as hair_type_name 
from 
    users u 
inner join hair_colour hc on u.hair_colour_id = hc.hair_colour_id 
inner join hair_type ht on u.hair_type_id = ht.hair_type_id 
order by 
    u.username; 
相關問題