2011-04-16 64 views
1

我有一個PHP/MYsql的問題。從逗號分隔的文本中添加MYSQL中的新行

我想在每個逗號後插入一個新行。

基本上,我想這個功能:

比方說,我們有以下文本的文本框:

籃球,網球,FUTBOL,排球 - >提交按鈕

提交按鈕後被點擊,我想在每個單詞後面的一個表格中插入一個新的行。

基本上,我想在DB的結局是這樣

id  category 
1  Basketball 
2  Tennis 
3  Futbol 
4  Volleyball 

任何人都可以幫助我?

謝謝:)

+1

如果答案正確,您應該點擊答案旁邊的複選標記 – Ben 2011-04-17 03:48:36

回答

5

你可以循環遍歷每一個,並單獨添加它們。

$input = "Basketball, Tennis, Futbol, Volleyball"; 
foreach (explode(',',$input) as $piece) 
{ 
    $piece = mysql_real_escape_string(trim ($piece)); 
    $sql = "INSERT INTO table VALUES($piece)"; 
    //Run sql 
} 
+1

與真實輸入變量一起使用時,務必不要忘記mysql_real_escape_string($ piece)'。 – mario 2011-04-16 23:13:18

+0

使用正確的SQL語法也是一個不錯的主意。 – halfdan 2011-04-16 23:14:42

+0

@mario你的權利,我沒有,因爲我使用了一個變量,但如果他從一個表單(他是)獲得它,那麼它是必要的。 @halfdan他沒有提供表格,列等。我想讀他的想法來格式化我的SQL? – Ben 2011-04-16 23:21:32

0

剛從超級全球GET/POST/REQUEST陣列搶值:

$categories = $_REQUEST['categories']; 

讓他們獨立的價值觀:

$categories = explode(",", $categories); 

對於數組創建中的每個值一條SQL語句並執行它。

foreach($categories as $category) { 
    $category = trim($category); // Remove possible whitespace 
    $sql = "INSERT INTO table (category) VALUES ('%s')"; 
    $sql = sprintf($sql, mysql_real_escape_string($category)); 
    mysql_query($sql); 
} 
+0

感謝:)...這正是我所期待的......工作很棒 – denis 2011-04-17 03:28:12

1

你能做到在一個查詢像這樣:

$Input = explode(',', 'a, b, c, d, e, f, g'); 
$Query = 'INSERT INTO Table(TableColumn) VALUES'; 

foreach ($Input as $Entry) 
{ 
    $Query .= '("' . $Entry . '"), '; 
} 

$Query = substr_replace($Query, '', -2); 

mysql_query($Query); 

所輸出的查詢將是這樣的:

INSERT INTO Table(TableColumn) VALUES("a"), ("b"), ("c"), ("d"), ("e"), ("f"), ("g") 
0

最短代碼:

$Input = explode(',', 'a, b, c, d, e, f, g'); 
if($Input){ 
    echo('INSERT INTO Table(TableColumn) VALUES ("'. 
     implode('"),("',$Input).'")'); 
} 

然而你需要讓你的$ Input轉義。