使用php explode函数将值存储在数据库表中

时间:2016-06-07 06:50:24

标签: php sql insert implode

我有一个包含4个或更多复选框的表单。表单由while循环创建,并包含数据库表中的数据。每个复选框代表一个礼物,每个礼物都有唯一的ID(id1 = 1,id2 = 2,id3在数据库中,用户可以选择一个或多个礼物,然后单击提交按钮来存储他的选择。所以我需要php implode()函数来获取用户选择的字符串。例如如果他选择第一个和第二个复选框/礼物,那么必须存储的值应该是1, 2。而不是这个我总是有不同的存储数据并且与用户选择不匹配。任何想法?

表格:

  <form method='post' action='insert.php'>
      .
      .
      .

     while($row_select4 = $stmt_select4->fetch(PDO::FETCH_ASSOC)){

        if($form_points>=$row_select4['points']) {

             $points = $row_select4['points'];  


           echo '

              <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" onclick="enable_form();" id="checkbox" name="opt[]" value="'.$points.'"></span>
                 <input type="hidden" name="opt2[]" value="'.$row_select4['id'].'">


                 <div class="feed-element">
                 <a href="profile.html" class="pull-left">
                 <img alt="image" class="img-circle" src="'. $row_select4['image_url']. '">
                 </a>';

  ?>

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

另外(在插入表格之前):

if(isset($_POST['opt2'])){



            foreach ($_POST['opt2'] as $value) {
                $gift = $_POST['opt2'];   

                $sliced = array_slice($gift, 0, -1);
                $gift_id = implode(", ", $sliced);
                }

这是我用来获取所选gift_ids并创建它们的字符串

表格更新:

<input type="hidden" disabled="disabled" name="opt2[]" value="'.$row_select4['id'].'">

获取gift_ids的代码:

foreach ($_POST['opt2'] as $value) {
                $gift = $_POST['opt2'];   

                $gift_id = implode(", ", $gift);
               }

1 个答案:

答案 0 :(得分:0)

无需array_slice 在你的PHP代码中:

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

通过使用它,您可以获得您想要的结果。

修改

您获得全部1,2,3,4的原因是您使用hidden作为礼物ID。

尝试将disabled="disabled"添加到您不希望发送到服务器的隐藏标记中。在此之后,您可以使用$_POST['opt2']

获取正确的ID