我有一个PHP / MYsql问题。
我想在每个逗号后插入一个新行。
基本上,我想要这个功能:
假设我们有一个带有以下文字的文本框:
篮球,网球,足球,排球 - >提交按钮
单击提交按钮后,我想在每个单词后面的一个表中插入一个新行。
基本上,我希望DB中的结果像这样
id category
1 Basketball
2 Tennis
3 Futbol
4 Volleyball
任何人都可以帮我这个吗?
谢谢:)
答案 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)
答案 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。