-6

我是板条箱形式,

<td>
               <input type="checkbox" name="mode[]" id="mode" value="sweet" />
                     Sweet<br />
                    <input type="checkbox" name="mode[]" id="mode" value=" sour" />
                       Sour<br />
                    <input type="checkbox" name="mode[]" id="mode" value=" creamy" />
                       Creamy<br />
                      <input type="checkbox" name="mode[]" id="mode" value="bland" />
                      Bland<br />                
                </td>

而php代码是,

for ($i=0; $i<sizeof($mode); $i++)
{
    $emode = mysql_real_escape_string($mode[$i]);

    $query  =<<<EOF
INSERT INTO frutesdetails(fruitname,fruitcolor,seasonfrom,seasonto,fruitetaste,fruitbenefit) 
VALUES ('{$fruitname}', '{$category}',
        '{$startdate}','{$enddate}','{$emode}','{$fruitbenefit}')
EOF;
$insertresults = mysql_query($query) or die(mysql_error()); 

}

我得到了所有的记录,但没有在一个记录中,如果我选中 2 复选框,我在两个不同的行而不是单行中得到两个记录

4

2 回答 2

2

如果您希望将其全部存储在一条记录中,请先删除for()循环。然后你有几个选项供你选择:

$emode = mysql_real_escape_string(json_encode($mode));
$emode = mysql_real_escape_string(serialize($mode));
$emode = mysql_real_escape_string(implode(',',$mode));

然后,您只需在退出时进行解码。

于 2013-07-17T15:00:22.397 回答
1

如果我正确理解你的问题,你的问题是

  • 您的 PHP 代码为每个选中的复选框在数据库中插入一行,但是
  • 您希望它插入包含所有复选框选择的一行。

但这正是您在代码中所做的 - 您正在循环$mode并执行mysql_query$mode. 如果您希望所有选择都在同一行中,那么让您$emode成为所有选择的某种表示,而不仅仅是其中之一,并摆脱那个 for 循环。

于 2013-07-17T15:02:39.093 回答