php - 将复选框值存储在 MySQL 数据库中,然后检索它们是否已设置……最好的方法是什么?

标签 php mysql database database-design checkbox

我有一个表单,用户可以在其中提交网站并说明它们是否在不同的浏览器中工作。目前,它看起来像这样:

<input type=checkbox name="browsers[]"  value="IE6"/>Internet Explorer 6<br/> 

<input type=checkbox name="browsers[]"  value="IE7"/>Internet Explorer 7<br/> 
<input type=checkbox name="browsers[]"  value="IE8" checked="checked"/>Internet Explorer 8<br/> <br/>
<input type=checkbox name="browsers[]"  value="FF2" checked="checked"/>Firefox 2<br/> 
<input type=checkbox name="browsers[]"  value="FF3" checked="checked"/>Firefox 3<br/> <br/>
<input type=checkbox name="browsers[]"  value="SA3" checked="checked"/>Safari 3<br/> 
<input type=checkbox name="browsers[]"  value="SA4" checked="checked"/>Safari 4<br/> <br/>
<input type=checkbox name="browsers[]"  value="CHR" checked="checked"/>Chrome<br/>  <br/>
<input type=checkbox name="browsers[]"  value="OPE" checked="checked"/>Opera<br/>  <br/>
<input type=checkbox name="browsers[]"  value="OTH" />Other Browsers<br/>  <br/>

我想知道的是,在数据库中存储复选框值的最有效方法是什么?当用户浏览到我网站上的网站页面时,我希望它查询数据库并返回它与哪些网站兼容。目前我正在考虑用这样的方法来做:

<?php if (!$browsers['FF2'] = NULL) {
                //(Insert into field named 'FF2')

            } else {
                //(Keep field named 'FF2' as NULL)
            } ?>

然后在访问网站页面时,它会检查每个数据库列(FF2、FF3、SA4 等)以查看该值是否不为 NULL。如果不是,它将回显“与 FF2 兼容”等。

我觉得这有点不合逻辑。为每个浏览器设置一个单独的列似乎有点可笑 - 我不知道这是我的怀疑还是这真的是最简单的方法。谁能推荐一些其他方法?

谢谢!

jack

最佳答案

为了提供灵 active ,我会做一个 many-to-many关系。

所以,例如有一个带有 browserId 和 websiteId 的支持表 foreign keys ,表示websiteId对应的网站支持browserId对应的浏览器。然后显然有带有 ID 和其他所需信息的浏览器和网站表。

关于php - 将复选框值存储在 MySQL 数据库中,然后检索它们是否已设置……最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2332447/

相关文章:

JavaScript - 等同于 PHP 类 self::

php - 检测网页是否有 javascript 重定向

ruby - 是否可以将数据分段到不同的 Redis 存储中,并在需要时加载到内存中?

ruby-on-rails - 没有自己的表的 Rails 嵌套模型与数据库之间的转换

mysql - 表列名称是 'default'

php - 调用ajax函数时找不到请求的URL

Laravel 中的 PHP 类型提示

mysql - 每 15 分钟刷新一次 Azure Redis 缓存

php - 使用 jQuery 对话框显示 mysql_error 消息

python - Django 提取值并使它们成为另一个页面中的占位符