如何将已检查的输入复选框保存到MySQL?

时间:2014-05-18 19:30:55

标签: php mysql checkbox

我有一个复选框列表,它总是在增长,例如..

<li><input type="checkbox" value="19384">Nutrition</li>
<li><input type="checkbox" value="22450">Weight Loss</li>
<li><input type="checkbox" value="98957">Fitness</li>
<li><input type="checkbox" value="34916">Lifestyle</li>

让我们说我检查营养健身,保存已检查的数据库架构/结构的最佳方法是什么,以便我以后可以检索它?

主要问题是这些复选框的数量总是在增加,因此明天这四个复选框最多可以有7个复选框或10个,并且总是会增加,所以我无法在数据库中为每个复选框设置特定数量的表格。复选框值。

我无法理解如何将已检查的数据库上传到数据库,然后再检索它们?

我是否可以将值上传到每个选定的MySQL,然后在检索它们时我必须在列表之间进行检查并与已经上传到MySQL的那些匹配,然后如果是这样,请使用输入中checked="yes"?我也使用PHP。

1 个答案:

答案 0 :(得分:1)

该复选框只是告诉您某些事情是......等待......是否检查过。通过选中一个框可以获得一个可能的值,即复选框已被选中。如果未选中,您将不会收到任何内容。

您需要做的第一件事是确保可以实际检查复选框的状态。这意味着您需要为复选框命名,不要在其中添加值。

<li><input type="checkbox" name="nutrition">Nutrition</li>
<li><input type="checkbox" name="weight_loss">Weight Loss</li>
<li><input type="checkbox" name="fitness">Fitness</li>
<li><input type="checkbox" name="lifestyle">Lifestyle</li>

现在,将检查是否检查这些内容的php将类似于:

if (isset($_POST['nutrition']))
{
    //Code to process nutrition being checked
}

这就是全部 - 你为每个人都这样做。

就数据库而言,由于您认为您将修改类型,因此您应该创建一个单独的表,将检查其中一个复选框的人与另一个具有相关信息的记录联系起来。

例如,您有一个显示某人的表:

  • person_id =自动递增的整数作为主键
  • person_name = string / nvarchar / whatever

那是人员表。下一个表将是您的查找表:

  • c_pk =自动增量整数作为主键
  • c_checkbox_id = 与另一个存储类型的表相关的整数 你有的复选框
  • c_person_id =该人的身份证明 checkbox_id与
  • 有关

最后一个表是包含复选框类型的表:

  • checkbox_id = autoincremented integer as primary key
  • checkbox_name = 表示复选框名称的字符串(营养,减肥,健身 等人)

这就是你如何摆放它,以便你可以随时添加更多。您还可以通过查询包含所有复选框名称的表来动态构建复选框列表。

如果你刚刚开始编程和数据库,这有点多,但它绝对是正确的方法。