php - 从复选框将多个值存入 MySQL

标签 php mysql arrays checkbox insert

我有一个html页面,其中有一个表单并将结果保存到MySQL中。问题在于该复选框仅在 MySQL 表上保存一个值。为了在数据库列中保存多个值,我必须做什么?

HTML 代码:

<fieldset>
<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  
<input type = "checkbox" name = "rating[]" value = "current"> The current one  
</fieldset>

PHP 代码:

$con=mysqli_connect("xxx","zzz","yyy","xxx");

if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }

$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$address = mysqli_real_escape_string($con, $_POST['address']);
$postcode = mysqli_real_escape_string($con, $_POST['postcode']);
$country = mysqli_real_escape_string($con, $_POST['country']);
$phonenumber = mysqli_real_escape_string($con, $_POST['phonenumber']);
$rating = mysqli_real_escape_string($con, $_POST['rating_value']);
$subscribe = mysqli_real_escape_string($con, $_POST['subscribe']);


for($i=0; $i<count($rating); $i++) { $rating_value &= $rating[$i];}

$sql="INSERT INTO customers (firstname, lastname, password, email, address, postcode,     country, phonenumber, rating, subscribe)
VALUES ('$firstname', '$lastname', '$password', '$email', '$address', '$postcode','$country', '$phonenumber', '$rating_value', '$subscribe')";


if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo " Success!";

最佳答案

您可以以逗号分隔格式存储用户检查的所有评级, 无论何时需要,这些值都可以轻松地从数据库中检索。

简单地爆炸该值。

示例:

    $ratingsArray=$_POST['rating'];

    $ratingsSelected=implode(',' , $ratingsArray);          /*ALL SELECTED RATING VALUES FROM ARRAY 
                                                                      CONVERT IN COMMA SEPERATED VALUE STRING*/

现在该字符串包含所有选定的评级值,以逗号分隔。 您可以简单地将字符串值存储在数据库中。

每当您需要以数组形式返回值时。

只需使用:

    $ratingsString=$row['rating'];                          //COMMA SEPERATED VALUE STRING FROM DATABASE                                                  

    $ratingsArray=explode(',' , $ratingsString);

现在这些值再次采用 Array 的形式,请根据您的要求使用。

关于php - 从复选框将多个值存入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014920/

相关文章:

mysql - 如何使用 play framework 和 scala 将数据插入数据库

mysql - Rails 3. 在 SQL 中检查真值

java - 递归头痛

php - 实现不同类型的接口(interface)

php通过字符串访问类

mysql - 为地址更改+定价创建正确的数据库表结构

c - 需要类型为 'int' 的参数,但参数 2 的类型为 'int **'

arrays - Hive中的数组拆分

php - 我无法删除 mysql 数据库中的字段

PHP array_multisort 没有按预期对我的多维数组进行排序