【问题标题】:Implode function doesn't store data in database table内爆函数不将数据存储在数据库表中
【发布时间】:2016-10-02 03:09:49
【问题描述】:

我试图在我的数据库表中存储一个字符串(如 1、2、3、...),但存储的数据只有 1(我在表列中只看到 1,而不是 1、2、3, ...)。我想从 php 表单中发布 checkbox_id 并将这些数字存储在表格列中(数字取决于选中的复选框以及选中的复选框数量)。

代码如下:

<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 echo 之外):

<button type="submit" class="btn btn-w-m btn-primary">ΕΞΑΡΓΥΡΩΣΗ</button> 
     </form>

插入.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();

【问题讨论】:

  • implode(" ",...)应该是implode(",", ...),这里不用foreach。
  • $_POST['opt2']中有什么内容???
  • &lt;input type="hidden" name="opt2[]" value="'.$row_select4['id'].'"&gt;.我想发布每个选中的复选框。对吗?
  • 所以只需使用$gift_id = implode(",", array_filter($_POST['opt2'])); 并存储$gift_id

标签: php mysql explode implode


【解决方案1】:

当您将复选框值发布为数组时,您有一些空白字段。你需要过滤它们,所以使用array_filter。

$filter_arr = array_filter($_POST['opt2']);
$gift_id = implode(",", $filter_arr);

并将$gift_id存入数据库,这是检查的ids字符串。

【讨论】:

  • 我认为它工作得很好!非常感谢你给我一个解决方案!问候!
【解决方案2】:

请使用逗号进行内爆。

$gift_id = implode(",", $sliced);

另外,您在 foreach 中的代码不正确。在 foreach 中使用 $value。

foreach ($_POST['opt2'] as $value) {
            $gift = $value;   
            $sliced = array_slice($gift, 0, -1);
            $gift_id = implode(" ", $sliced);
            }

【讨论】:

  • 现在我在表列中存储 NULL 值!
猜你喜欢
  • 2016-10-08
  • 2017-06-16
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多