我正在使用复选框来查看用户是否想要“早餐,晚餐和晚餐”

这是我的代码

<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字段中接收到“ Array”值。

是否有办法在PhpMyAdmin中查看此数组的值(三个值Breakfast,Dinner和Supper),还是只能从数据库中回显它们?

附言我尝试使用爆破功能,但没有用。我也尝试过$foodData = array($selectedFood),但也没有用。

最佳答案

你内lo是错的。 $selectedFood已经是一个数组,您无需将其包装在另一个数组中。所以应该是:

$implodedData = implode(',', $selectedFood);


然后,您可以将$implodedData存储在数据库中。

但是,将逗号分隔的列表放在数据库中通常是较差的设计。您应该为每个项目使用一个带有单独行的关系表。

09-25 18:42
查看更多