将复选框条目插入数据库

AAA*_*AAA 0 php checkbox session

我有名称状态的复选框.这就是我这样做的方式:

   $_SESSION['statuses'] = mysql_real_escape_string($_POST['statuses']);
Run Code Online (Sandbox Code Playgroud)

当我插入它时,我正在这样做:

   $insert = "INSERT INTO submitted (statuses) 
   VALUES ('".$_SESSION['statuses']."')";

   $query = mysql_query($insert) or die ("Error: ".mysql_error());
Run Code Online (Sandbox Code Playgroud)

问题是没有被检查的内容被插入到数据库中,所以如何插入已检查的条目?

NEW/UPDATE:

这是复选框形式的样子:

                    <input type="checkbox" name="statuses" value="something">
        <input type="checkbox" name="statuses" value="something">
        <input type="checkbox" name="statuses" value="something">
        <input type="checkbox" name="statuses" value="something">
        <input type="checkbox" name="statuses" value="something">
        <input type="checkbox" name="statuses" value="something">
Run Code Online (Sandbox Code Playgroud)

F21*_*F21 5

也许问题可能在于您为表单撰写的标记.这是和例子:

<form action="checkbox-form.php" method="post">
Select your options<br />
<input type="checkbox" name="options[]" value="A" />A<br />
<input type="checkbox" name="options[]" value="B" />B<br />
<input type="checkbox" name="options[]" value="C" />C<br />
<input type="submit" name="formSubmit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

请注意,options设置为options[].这允许所有选中选项的数组出现在POST超级变量中.

如果你这样做:

var_dump($_POST['options']);
Run Code Online (Sandbox Code Playgroud)

然后,您应该获得一个包含所有已检查值的数组.

然后你可以这样做:

foreach($_POST['options'] as &$option){
   mysql_real_escape_string($option);
}
Run Code Online (Sandbox Code Playgroud)

然后插入数据库:

   $insert = "INSERT INTO submitted (statuses)       
   VALUES ('". implode(",", $_POST['options']) ."')";      

   $query = mysql_query($insert) or die ("Error: ".mysql_error());
Run Code Online (Sandbox Code Playgroud)

更新:在表单的每个页面上,您应该有一些类似于转义值并将其保存到会话中的内容.然后,这会将每个页面的值保存到用户的会话中:

//Page 1
foreach($_POST['options'] as $option){
     $_SESSION['options'][] = mysql_real_escape_string($option);
}

//page 2
$_SESSION['SOME_OTHER_VALUE_FROM_TEXT_BOX'] = mysql_real_escape_string($_POST['SOME_OTHER_VALUE_FROM_TEXT_BOX');

//Final page:
//Everything is now stored in SESSION, so you can use them there:
//For example, display the value of options:
var_dump($_SESSION['options']); //etc

//So here, you would just run your sql queries to insert the appropriate data into your databse.
Run Code Online (Sandbox Code Playgroud)