Iplode 函数不在数据库中存储数据 table
Implode function doesn't store data in database table
我试图在我的数据库中存储一个字符串(如 1、2、3、...)table,但存储的数据只有 1(我在 table 列而不是 1、2、3、...)。我想从 php 表单 post checkbox_id 并将这些数字存储在 table 列(数量取决于选中了哪些复选框以及选中了多少复选框。
代码如下:
<form action="insert.php" method="post"><div>
<div class="feed-activity-list"><div style="border: 0.5px solid green; border-right-style:none;" class="input-group m-b"><span class="input-group-addon">
<input type="checkbox" id="checkbox" name="opt[]" value="'.$points.'"></span>
<input type="hidden" name="opt2[]" value="'.$row_select4['id'].'"> </div></div>
提交按钮(在 php 回显之外):
<button type="submit" class="btn btn-w-m btn-primary">ΕΞΑΡΓΥΡΩΣΗ</button>
</form>
insert.php :
if(isset($_POST['opt2'])){
foreach ($_POST['opt2'] as $value) {
$gift = $_POST['opt2'];
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(" ", $sliced);
}
echo $gift_id;
$stmt_insert = $conn->prepare("INSERT INTO transactions (gift_id) VALUES (:gift_id)"));
$stmt_insert->bindParam(':gift_id', $gift_id);
$stmt_insert->execute();
请使用逗号内爆。
$gift_id = implode(",", $sliced);
此外,您在 foreach 中的代码不正确。在 foreach.
中使用 $value
foreach ($_POST['opt2'] as $value) {
$gift = $value;
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(" ", $sliced);
}
由于您 post 将选中的框值作为数组,所以您有一些空白字段。你需要过滤它们,所以使用 array_filter.
$filter_arr = array_filter($_POST['opt2']);
$gift_id = implode(",", $filter_arr);
并将$gift_id
存储到数据库中,这是检查过的ids的字符串。
我试图在我的数据库中存储一个字符串(如 1、2、3、...)table,但存储的数据只有 1(我在 table 列而不是 1、2、3、...)。我想从 php 表单 post checkbox_id 并将这些数字存储在 table 列(数量取决于选中了哪些复选框以及选中了多少复选框。
代码如下:
<form action="insert.php" method="post"><div>
<div class="feed-activity-list"><div style="border: 0.5px solid green; border-right-style:none;" class="input-group m-b"><span class="input-group-addon">
<input type="checkbox" id="checkbox" name="opt[]" value="'.$points.'"></span>
<input type="hidden" name="opt2[]" value="'.$row_select4['id'].'"> </div></div>
提交按钮(在 php 回显之外):
<button type="submit" class="btn btn-w-m btn-primary">ΕΞΑΡΓΥΡΩΣΗ</button>
</form>
insert.php :
if(isset($_POST['opt2'])){
foreach ($_POST['opt2'] as $value) {
$gift = $_POST['opt2'];
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(" ", $sliced);
}
echo $gift_id;
$stmt_insert = $conn->prepare("INSERT INTO transactions (gift_id) VALUES (:gift_id)"));
$stmt_insert->bindParam(':gift_id', $gift_id);
$stmt_insert->execute();
请使用逗号内爆。
$gift_id = implode(",", $sliced);
此外,您在 foreach 中的代码不正确。在 foreach.
中使用 $valueforeach ($_POST['opt2'] as $value) {
$gift = $value;
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(" ", $sliced);
}
由于您 post 将选中的框值作为数组,所以您有一些空白字段。你需要过滤它们,所以使用 array_filter.
$filter_arr = array_filter($_POST['opt2']);
$gift_id = implode(",", $filter_arr);
并将$gift_id
存储到数据库中,这是检查过的ids的字符串。