【问题标题】:how to update multiple ids with different value如何更新具有不同值的多个ID
【发布时间】:2018-01-24 21:47:00
【问题描述】:
My form have multiple checkboxes in it (each with the code):
<input type="checkbox" name="id[]" value="<? echo $row['id'] ?>">

当用户选择 id = 2 、 3 和 9 并提交值时。在我的更新 php 中,我使用以下代码来获取选定的值

echo "Check box test<pre>" ;
print_r($id); 
echo "</pre>";
if(!empty($_POST['id'])) {
foreach($_POST['id'] as $check) {
echo $check."\n";
}
}

// update data in mysql database 
 $sql="UPDATE table SET display = '2'  WHERE  id IN ($check)";

我总是将最后选择的 id 更新为 9

但我没有得到我想要的结果

$sql="UPDATE table SET display = '2'  WHERE  id IN (2,3,9)";

。请帮助做什么。我对 php 很陌生。

【问题讨论】:

    标签: php mysql sql arrays


    【解决方案1】:

    你对$check什么都不做,把id变成这样

     $ids="";
     if(!empty($_POST['id'])) {
       foreach($_POST['id'] as $id) {
          $ids[] = $id;
       }
     }
     $check = implode(",", $ids);
    

    【讨论】:

      【解决方案2】:

      因为您正在迭代循环,$check 将具有迭代的最新值。

      foreach($_POST['id'] as $check) {
        echo $check."\n";
      }
      

      你为什么不试试呢?

      $check[] = $_POST['id']; 
      

      【讨论】:

        【解决方案3】:

        我认为您需要更好地了解echo 以及服务器端和客户端之间的区别。 你要找的是implode

        if(!empty($_POST['id'])){
            $check = '(' . implode(',', $_POST['id']) . ')';
        }
        

        【讨论】:

          猜你喜欢
          • 2019-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-29
          • 1970-01-01
          • 2017-02-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多