我有一个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/