在文本框中的逗号分隔文本中添加MYSQL中的新行

时间:2011-04-16 23:06:45

标签: php mysql textbox insert

我有一个PHP / MYsql问题。

我想在每个逗号后插入一个新行。

基本上,我想要这个功能:

假设我们有一个带有以下文字的文本框:

篮球,网球,足球,排球 - >提交按钮

单击提交按钮后,我想在每个单词后面的一个表中插入一个新行。

基本上,我希望DB中的结果像这样

id      category
1       Basketball
2       Tennis
3       Futbol
4       Volleyball

任何人都可以帮我这个吗?

谢谢:)

5 个答案:

答案 0 :(得分: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 :(得分: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")

答案 2 :(得分:0)

这是你在寻找什么?

http://php.net/manual/en/function.fgetcsv.php

答案 3 :(得分: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);
}

答案 4 :(得分:0)

最短的代码:

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

但是您需要转义$ Input。