如何将多个复选框值存储到一个数据库字段中

时间:2014-12-24 07:53:08

标签: php mysql cakephp mysqli phpmyadmin

我正在开发一个系统,我要求用户将标记为已检查产品的客户最新购买的产品。我已经详细创建了这个产品表,并根据产品表中的输入动态创建了一个复选框列表。下面是我创建复选框的代码。

    $query_parent4 = mysql_query("SELECT * FROM product") or die("Query failed: ".mysql_error());
    <div class="col-sm-8 icheck ">
    <?php while($row = mysql_fetch_array($query_parent4)): ?>
    <div class="square-blue single-row">
    <div class="checkbox" >
    <input  name="product[]" value="<?php echo $row['product_id']; ?>" type="checkbox"><label> <?php echo $row['product_name']; ?></label>
    </div>
    </div>
    <?php endwhile; ?>
    </div>

现在我希望将所有选中的复选框值存储在我在客户表中创建的字段中,其名称为“Product”,如下所示

产品:1:2:3:4:5

我使用下面提到的代码来完成这项任务,但没有在这个

上取得成功
<?php
if(isset($_POST['submit']))
{
    $fac=$_POST['product'];
    $fac1=implode(":",$fac);

    $sql=mysql_query("update hotel_info set product='$fac1' where custid=$custid");

}
?>

请帮助!!!

2 个答案:

答案 0 :(得分:0)

试试这个会起作用:

<?php
if(isset($_POST['submit']))
{
    $fac=$_POST['product'];


foreach($fac as $fac1)
        {
           $sql=mysql_query("update hotel_info set product='$fac1' where custid=$custid");

        }        
}
?>

此处$fac正在返回array,因此您无法直接使用它。

答案 1 :(得分:0)

将多个值存储到单个列是个坏主意 我建议,去寻找一个新的表格来映射每个产品与客户(因为它的多对多关系)。

这样的事情:

Customer: id, name<br>
Product: id, name, price<br>
Customer_Product(or call it Order):id, customer_id, product_id, qty, due etc.

这会使表结构标准化。