2013-07-17 63 views
-6
一行

我正在装箱形式,如何添加复选框intems到数据库中

<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()); 

} 

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

+3

什么? “如果我检查2复选框,我得到两个,像三个”没有任何意义。这个问题质量很低 – pattyd

回答

2

如果你想要它全部存储在一个记录中,首先删除for()循环。然后你有几个选项可以选择:

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

然后,你只是解码的出路。

+0

等待你是否想把它们全部存储在一个记录中或者是否想要检查每个盒子的一个记录? – Pitchinnate

+0

如何在代码中使用此代码? –

+0

摆脱for循环。然后用我列出的选项之一替换'$ emode = mysql_real_escape_string($ mode [$ i]);''。 – Pitchinnate

1

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

  • 你的PHP代码中插入一个一行到数据库中为所选的每个复选框,但
  • 你想让它插入一行包含所有复选框选项。

但是,这是你做你的代码到底是什么 - 你遍历$mode$mode执行你的mysql_query呼吁每个元素。如果你想要在同一行中进行所有选择,那么让$emode作为所有选择的代表而不是其中的一个选项,然后摆脱那个for循环。

+0

你能告诉我什么解决方案 –

相关问题