2011-04-16 67 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转义。