插入一个数组并在PhpMyAdmin中显示值

时间:2015-02-24 17:08:48

标签: php mysql arrays database

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

这是我的代码

<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)但它也没用。

1 个答案:

答案 0 :(得分:1)

你犯了错误的东西。 $selectedFood已经是一个数组,你不需要将它包装在另一个数组中。所以它应该是:

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

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

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