mysql db中的复选框值

时间:2012-07-31 15:26:31

标签: php mysql

以下code.Error有什么问题 警告:为foreach()提供的参数无效

    if(isset($_POST['submit']))
        {
        foreach($_POST['team[]'] as $value)
        {
        $insert=mysql_query("INSERT INTO team('team') VALUES ('$value')");
        }
        if($insert)
        {
        echo "dONE";
        }
        }
<form method="post" action="check.php">
<input type="checkbox" name="team[]" value="AG"> Argentina
<input type="checkbox" name="team[]" value="GE"> Germany
<input type="checkbox" name="team[]" value="BR"> Brazil
<input type="submit" name="submit" value="submit">
</form>

5 个答案:

答案 0 :(得分:2)

尝试:

foreach($_POST['team'] as $value)

答案 1 :(得分:1)

不要参考team[]。而是使用

if (isset($_POST['team'])) {
    foreach($_POST['team'] as $value) { ... }
}

答案 2 :(得分:1)

当您从$ _POST接收变量团队时,它将是每个复选框的数组。

因此,您应该使用

而不是team[]
foreach($_POST['team'] as $value)

此外,您应该知道,如果未选中任何复选框,则关键团队将不存在,因此请确保在您的foreach之前执行if (isset($_POST['team']))

你也会在每次循环时覆盖插入。

你可能想做这样的事情:

if(isset($_POST['submit']))
{
    if (isset($_POST['team']))
    {
        $insert = true;

        foreach($_POST['team'] as $value)
        {
            // we add security with mysql_real_escape_string
            $value = mysql_real_escape_string($value);
            $result = mysql_query("INSERT INTO team('team') VALUES ('$value')");

            if (!$result)
            {
                $insert = false;
                break;
            }
        }

        if($insert)
        {
            echo "dONE";
        }
    }
}

您可能需要检查mysql_real_escape_string以向代码添加secrurity

答案 3 :(得分:0)

当您对输入执行name=something[]时,php会为您创建数组,因此您只需要这样做

foreach($_POST['team'] as $value)

name=team[member][]这样的东西也可以在php中迭代,如此

foreach($_POST['team']['member'] as $value)

因此,它使分组输入和处理多个动态输入变得非常容易

答案 4 :(得分:0)

尝试以下方法:

$teams = $_POST['team'];
$submitted = $_POST['submit'];

if(isset($submitted) && is_array($teams)) {

     foreach($teams as $team) {
          /* Escapes special characters in a string for use in an SQL statement */ 
          $team = mysql_real_escape_string($team)
          $insert = mysql_query("INSERT INTO team('team') VALUES ('$team')");
     }

     if($insert) {
          echo "dONE";
    }
} else {
    echo "Either Form Not Submitted or Teams is Not Array";
}