我正在使用复选框来查看用户是否想要“早餐,晚餐和晚餐”
这是我的代码
<div id="checkboxesFood">
<p>Please select if you want breakfast, dinner and supper</p>
<input type="checkbox" class="food" name="foodboxes[]" value="Breakfast"/>Breakfast
<input type="checkbox" class="food" style="margin:0 0 0 19%;" name="foodboxes[]" value="Dinner"/>Dinner
<input type="checkbox" class="food" style="margin:0 0 0 19%;" name="foodboxes[]" value="Supper"/>Supper
</div>
我正在使用PHP连接数据库并将值存储在那里。
这是我的PHP代码
$username = $_POST['userName']; //Username
$view = $_POST['roomChoice']; //View Of Room
$paymentMethod = $_POST['payment']; //How user want's to pay
$selectedFood = $_POST['foodboxes']; //Food they have selected(Breakfast, Dinner or Supper)
//$foodData = array($selectedFood);
$con = new mysqli('localhost','username','mypw','DB');
if($con->connect_error){
die("Connection failed: " .$con->connect_error);
}
//$implodedData = implode(",",$foodData);
$sql = "INSERT INTO Hotellbokning(Name,Room,Food,Payment) VALUES('$username','$view','$implodedData','$paymentMethod')";
if($con->query($sql) == true){
echo "You did it John!";
}
else{
echo "Error: " . $sql . "<br/>" .$con->error;
}
只需忽略不是问题的变量。当我将这个数组$selectedFood
插入我的数据库时,我在我的Food-field上收到值“Array”。
有没有办法在PhpMyAdmin中查看此数组的值(三个值Breakfast,Dinner和Supper),还是只能从我的数据库中回显它们?
P.S。我尝试使用内爆但它没有用。我也试过$foodData = array($selectedFood)
但它也没用。
答案 0 :(得分:1)
你犯了错误的东西。 $selectedFood
已经是一个数组,你不需要将它包装在另一个数组中。所以它应该是:
$implodedData = implode(',', $selectedFood);
然后您可以将$implodedData
存储在数据库中。
但是,将逗号分隔的列表放在数据库中通常是糟糕的设计。您应该为每个项目使用一个单独行的关系表。