簡體   English   中英

如何使用PHP和MySQL在MySQL數據庫中存儲數組數據?

[英]How to store array data in MySQL database using PHP & MySQL?

我是php和mysql的新手,我試圖學習如何使用MySQL和PHP從三個不同的數組friend[], hair_type[], hair_color[]存儲以下數組數據,一個示例很好。 謝謝

這是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)
);

創建一個用於頭發類型,頭發顏色和朋友的表格。

頭發類型和頭發顏色每個都需要id的主鍵和一個name字段。

Friend需要一個主鍵id ,以及name字段, hair_type_idhair_color_id

使頭發類型和頭發顏色的值分別來自數據庫。

提交表單時,遍歷$ _POST ['friend']數組,將朋友名稱,頭發類型ID和頭發顏色ID插入朋友數據庫。

不要忘了清理輸入。 查看mysql_real_escape_string()的示例。

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

您可以使用序列化功能來存儲陣列到MySQL數據庫和檢索的值,用Unserialise功能.. PHP序列化功能

假設每個用戶只能擁有一種頭發類型和一種頭發顏色,則可以檢查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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM