php - 根据复选框值将是或否插入 MySQL

标签 php mysql arrays checkbox insert

我有一个复选框列表,如下所示,数字 416、419 等代表页码。它们用于 2 组字段,一组是“likebutton”,另一组是“sendbutton”。

 <input type="checkbox" name="likebutton[]" value="416" />
 <input type="checkbox" name="likebutton[]" value="417" />
 <input type="checkbox" name="likebutton[]" value="418" />
 <input type="checkbox" name="likebutton[]" value="419" />
 ...more checkboxes
 <input type="checkbox" name="sendbutton[]" value="416" />
 <input type="checkbox" name="sendbutton[]" value="417" />
 <input type="checkbox" name="sendbutton[]" value="418" />
 <input type="checkbox" name="sendbutton[]" value="419" />
 ...more checkboxes

我想要实现的是,当这些复选框被选中时,我能够使用 MySQL 中 likebutton 和 sendbutton 字段的是(选中)或否(未选中)数据更新每一行(页面)。目前我的 mysql 查询如下所示。这似乎只有当我有一个 foreach 函数并且我勾选了一个或多个复选框时才有效,但是如果我保留下面所述的代码或者如果我没有选中所有内容,我会收到 foreach 函数的错误。

 foreach($_POST["likebutton"] as $pagenumberL)
 $YesNoL = isset($_POST["likebutton"]) ? 'Yes' : 'No';
 mysql_query("UPDATE pages SET likebutton='".$YesNoL."' WHERE page_id='".$pagenumberL."'");

 foreach($_POST["sendbutton"] as $pagenumberS)
 $YesNoS = isset($_POST["sendbutton"]) ? 'Yes' : 'No';
 mysql_query("UPDATE pages SET sendbutton='".$YesNoS."' WHERE page_id='".$pagenumberS."'");

关于我的问题的任何指示或关于我应该如何进行的更好建议?

最佳答案

复选框的问题(正如您所指出的)是未选中的复选框不会提交任何数据。

解决这个问题的标准技巧是......

<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">

选中复选框后,将提交其值,因为它稍后会出现在文档中。如果未选中,则提交隐藏的输入值。

然后您可以简单地通过名称检查值

$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

在您的特定情况下,在输入名称中包含 page_id,例如

<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

在 PHP 中

foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
    $dbFlag = $likeFlag ? 'Yes' : 'No';

    // update DB
}

关于php - 根据复选框值将是或否插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8131890/

相关文章:

php - 将 javascript 与 php 混合时的性能和缓存

php - 跨桌面同步 phpMyAdmin DB

mysql - 用于填充关系组合 php 的 SQL 查询

python - 如何使用给定大小的数组实现网格?

java - 给定邻接规则和未排序数组,返回符合规则的数组

php - .htaccess RewriteRule 还重写了我的 css、js 和图像文件。如何忽略这些?

php - 上传、创建新目录、获取本地 url、设置字段 - PHP + MySQL

php - 旋转 base 64 图像并作为 BLOB 插入 MySql

php - 使用现有值 + 新值更新列

c# - 如何从文本文件中的另一行向下读取 X 行?