php - 将下拉列表中的多个选择插入一行

标签 php mysql

我试图从下拉列表中进行多个选择,并将它们插入到表中的单个列/行中。

这样它看起来像这样(ColumnB):

ColumnA | ColumnB | ColumnC
---------------------------
Stuff   | A, B, C | Stuff

这是下拉菜单:

echo "<select NAME='SysName_1' SIZE='1' multiple tabindex='7'>\n";
echo "<option>Choose One or More</option>\n";

为了填充下拉列表,我使用 select 语句

$strSQL = "SELECT STATEMENT"; 

$rsSQL  = odbc_exec($connSQL,$strSQL) or die ('Error Executing Subsystems SQL');

$strOptions = "";

while ($row=odbc_fetch_array($rsSQL)){

   $id          = trim($row["SysName"]);
   $thing       = trim($row["SysDesc"]);
   $strOptions .= "<OPTION VALUE='$id'>$thing</option>";
}

echo $strOptions;

echo "</select>\n";

这就是我的插入内容:

应该合并多个选择,并用 分隔,对吗?

$SysName_1 = implode(',',$_POST['$SysName_1']); 

$SQLIN = 'INSERT INTO TABLE (COLUMNA) VALUES ($SysName_1)';

我尝试执行此处的操作,因为他的代码似乎正在执行我想要的操作(尽管他不希望这样做)Multiple dropdown values inserting in a single row not in multiple row

但是根本不起作用。我在服务器日志中得到了一个无效的内爆参数,并且该变量的插入语句只是空白。

如有任何帮助,我们将不胜感激。

最佳答案

表单中的 name 属性需要以 [] 结尾以指示数组。这应该有效

echo "<select NAME='SysName_1[]' SIZE='1' multiple tabindex='7'>\n";

但是你应该小心。永远不要相信用户输入!不要将 $_POST 中的值直接插入数据库。至少总能逃脱

关于php - 将下拉列表中的多个选择插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18945694/

相关文章:

php - 关联数组索引中的美元符号

php - self 加入并仅在一个表/一侧忽略空值

php - 扩展构建器中的 "Map to existing tables"在 TYPO3 中显示奇怪的问题

mysql - 在 MySQL/InnoDB 中锁定一行是否也总是锁定所有关联的索引记录?

php - 如何在没有真实 URL 的情况下用 PHP 返回文件?

php - 使用空参数运行 PHP 搜索脚本会返回整个 MySQL 表

php - 我如何在 PHP 而不是 MySQL 中进行 groupby 或 groupconcat ?

mysql - 从另一个表中使用 SELECT 插入 SQL

使用 JDBC 添加相同日期后,MySql 给我错误的日期

mysql - 部门薪酬前3名如何选出?