Php 复选框以添加多个值
我有一个html页面,其中有一个表单,并将结果保存到MySQL中。问题是复选框只在MySQL表上保存一个值。为了在db列中保存多个值,我必须做什么 HTML代码:Php 复选框以添加多个值,php,mysql,checkbox,Php,Mysql,Checkbox,我有一个html页面,其中有一个表单,并将结果保存到MySQL中。问题是复选框只在MySQL表上保存一个值。为了在db列中保存多个值,我必须做什么 HTML代码: <input type="checkbox" name="rating[]" value="Homepage">Homepage <input type="checkbox" name="rating[]" value="Facilities">Facilities <input type="checkb
<input type="checkbox" name="rating[]" value="Homepage">Homepage
<input type="checkbox" name="rating[]" value="Facilities">Facilities
<input type="checkbox" name="rating[]" value="reservation">Reservation
<input type="checkbox" name="rating[]" value="Contact">Contact
如果
$rating
是数组,请尝试
我想你有三个选择 首先 创建另一个表并用外键连接它们 第二 使复选框具有值并进行位屏蔽 Ex)
废话
废话
废话
如果有人勾选“blah”和“blah3”,则将其设为5。(1和4)
像这样:
for($i=0; $i<count($rating); $i++)
{
$rating_value &= $rating[$i];
}
对于($i=0;$i我强烈建议您阅读以下内容:
但是您还没有遇到PHP或HTML问题,您正在尝试将信息存储在一个没有位置的数据库中
您至少需要两个额外的表:
评级
主表,包括:
评级\u id
(自动递增或任意代码)
评级值
(例如“差”、“一般”、“好”…)
…存储可用评级的位置
- A
db\u评级
表,包括:
db\u id
(db
的主键)
rating\u id
(rating
的主键)
…存储关系的地方
…并删除您当前的db.rating
列。您的数据库似乎没有空间容纳此类信息。您缺少一个与“db”链接的“db to rating”表。你能给出你数据库中评级栏的结构吗?谢谢。我能找出以下问题:我如何按评级搜索?我如何按评级排序?我如何删除评级?@lvaroG.Vicario正确。取决于OP希望存储的方式。如果你没有太多“评级”字段(如果你使用inter保存此值,则低于32),您可以使用第二个。但您必须使用另一个常量来区分每个值。因此我几乎使用第一个。我尝试了第二个解决方案,但它仍然保存了一个值!我可以查看您的源代码吗?它只保存一个值,您必须拆分此值。如果您有值5,则表示二进制中的101。这表示第三个复选框,第一个复选框是checked.Use AND operation可拆分此值。for($i=0;$iIt错误。必须保存$rating\u value而不是$rating,并在完全计算$rating\u value后进行sql查询。请尝试以下操作:for($i=0;$iIn事实上,只需要其中一个,因为这是一对多的情况。OP问题中的表格需要添加一个id
字段,该字段可以链接到所有rating
行,其中包括所说的id
和rating
@Antti29。他有复选框,而不是单选按钮,而且他明确地询问d保存多个值。是的,它将存储在评级
表中,并用id
链接到原始表。评级
表将有多行用于这些多个值。单选按钮根本不需要任何其他表。@Antti29因为他有复选框(而不是允许自由输入)我还假设评级是标准化的,必须从固定的列表中选择。我添加了一些例子来说明这一点。
$sql="INSERT INTO db (firstname, lastname, password, email, address, postcode, country, phonenumber, rating, subscribe)
VALUES ('$firstname', '$lastname', '$password', '$email', '$address', '$postcode','$country', '$phonenumber', '".implode(',',$rating)."', '$subscribe')";
<input type="checkbox" name="something[]" value="1">blah
<input type="checkbox" name="something[]" value="2">blah2
<input type="checkbox" name="something[]" value="4">blah3
for($i=0; $i<count($rating); $i++)
{
$rating_value &= $rating[$i];
}