首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Multiple Dropdown提交到MySQL (第2部分)

问PHP Multiple Dropdown提交到MySQL (第2部分)
EN

Stack Overflow用户
提问于 2010-02-09 00:04:43
回答 2查看 1.7K关注 0票数 2

这是讨论的继续,在

PHP Multiple Dropdown Box Form Submit To MySQL

它以这样一句话结束:“一旦你有了变量,创建新行就很简单了。”毫无疑问,这通常是正确的,但显然不适用于这个学习者……:-D

给出以下形式:

代码语言:javascript
复制
    <form action="form.php" method="POST">
    <select name="colors[]" multiple="yes" size="2">
    <option>Red</option>
    <option>Blue</option>
    </select>
    <input type="submit" value="Go!"> 
    </form>

如何创建新行?下面的脚本

代码语言:javascript
复制
foreach($_POST['colors[]'] as $color) 
    {
        $id = mysqli_real_escape_string($link, $color);
        $sql = "INSERT INTO colors SET id = '$id'";
    }

引发错误

代码语言:javascript
复制
 Warning: Invalid argument supplied for foreach() in form.php on line ...

鉴于以下内容

代码语言:javascript
复制
    $colors = $_POST['colors[]']; 
    for ($i = 0; $i < count($colors); $i++) 
        {
            $color = $colors[$i];
            $sql = "INSERT INTO colors SET id = '$color'";
        }

不引发错误,但不创建行。

我在这里错过了什么琐碎的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-09 00:06:52

使用:

代码语言:javascript
复制
foreach($_POST['colors'] as $color) 

不需要在这里指定[],php知道它是一个数组。

票数 2
EN

Stack Overflow用户

发布于 2010-02-09 00:30:14

在您的foreach循环中,我没有看到您正在执行查询。您需要使用INSERT语句执行。

代码语言:javascript
复制
foreach($_POST['colors'] as $color) {
 $id = mysqli_real_escape_string($link, $color);
 $sql = "INSERT INTO colors SET id = '$id'";
  if (!mysql_query($sql)) {  // if the query encountered a problem.
     die('Invalid query: ' . mysql_error());
  } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2222902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档