【问题标题】:how to add checkbox intems in to data base in one row [closed]如何将复选框项目连续添加到数据库中[关闭]
【发布时间】:2013-07-17 23:07:59
【问题描述】:

我是装箱的,

<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 复选框,我会在两个不同的行中得到两个记录,而不是在单行中

【问题讨论】:

  • 什么? “如果我选中 2 复选框,我会得到两个,比如三个”是没有意义的。这个问题质量很低

标签: php html


【解决方案1】:

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

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

那你就在输出的时候解码。

【讨论】:

  • 等一下,您是希望将它们全部存储在一条记录中,还是希望为每个复选框选中一条记录?
  • 如何在我的代码中使用此代码?
  • 摆脱 for 循环。然后将$emode = mysql_real_escape_string($mode[$i]); 替换为我列出的选项之一。
【解决方案2】:

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

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

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

【讨论】:

  • 有什么解决办法可以告诉我
猜你喜欢
  • 2021-01-22
  • 1970-01-01
  • 2011-11-15
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多