2011-11-25 56 views
2

我想從字段中獲取數據,這是一串用逗號分隔的單詞,並將每個單詞保存爲一個變量。之後,我想將存儲的單詞用於檢索信息。在MySQL字段中,如何選擇用逗號分隔的字符串中的單詞?

這個例子是一個包含信息的字段:「Bob,Sue,Adam,Tim,Hank」我的目標是選擇每個名稱,使用逗號來檢測每個不同的名稱,並將每個名稱保存爲變量或更有效的數組,然後使用「for」命令或類似的方式顯示每個人的相關信息。

我正在使用MySQLi命令,據我所知,這些命令記錄不完整;然而,這是我的書指示我使用的。

+2

字段不應該包含「鮑勃說,蘇,亞當,蒂姆,漢克」。這應該是子表中的5行。 – gbn

回答

2

explode功能其他答案建議將正常工作,但如果你在第二個表分開存放這些名字會更優雅。

那麼,你現在有:

  • mainidnames

我建議:

  • mainid
  • namesmain_idname

然後你可以檢索的名字屬於一個行與查詢,如:

SELECT name FROM names WHERE id = $id 

要添加屬於某一ID,使用了一個名字:

INSERT INTO TABLE names (main_id, name) VALUES ($id, "$newname") 
+0

好的。我爲我的困惑道歉。我必須創建一個工作的朋友列表。用戶將訪問一個配置文件並點擊「添加」。這將增加用逗號分隔符點擊用戶姓名到clickee的「friends」字段。你的方法可以用這樣的東西工作嗎? –

+0

單獨的表格方法將使您的用例更容易。您只需在名稱表中添加一個名稱(請參閱擴展答案),而您現在必須檢索字符串,添加一個新的以逗號分隔的名稱,然後替換數據庫中的字符串。 – mhelvens

+0

謝謝你的回覆。我會嘗試你的方法。我之前完成了HTML和CSS,但PHP和MySQL是兩種不同的動物。 –

0
  1. 選擇字段
  2. $名稱=爆炸( '',$ thefield);

您現在有值

0

你想EXPLODE數組!

例如:

$persons= explode(",", "Bob,Sue,Adam,Tim,Hank"); 
4

你可以在MySQL中使用find_in_set

假設mysql字段「用戶名」有這些值:「鮑勃說,蘇,亞當,蒂姆,漢克」

$name="bob"; 

QUERY是

select * from TABLE_NAME where FIND_IN_SET('$name', username); 
+1

很酷! :-)我不知道這個功能。即便如此,我認爲長遠來看,不同的餐桌設計將更加穩健。 – mhelvens

+0

yes :) mhelvens –

相關問題