繁体   English   中英

从数组值更新几行表

[英]update few row table from array value

我从PHP MYSQL 学习使用数组中的值更新多行

        $array = Array();
           $query = $conn->query("
           SELECT P.email,P.kodeunik FROM peserta P
           LEFT JOIN konfirmasi K ON K.nominal=P.kodeunik
           LEFT JOIN detailbca D ON D.mutasi =P.kodeunik       
           where P.paid='0' AND K.paid='0' AND D.paid='0'");
           while($result = $query->fetch_assoc()){
           $array[] = $result;
           }
    
    $email = implode(',', array_column($array, 'email'));
    $nominal1 = implode(',', array_column($array, 'kodeunik'));

echo $nominal1; // 215003,215004,215005

现在我想要更新表,如果有几个来自$nominal1的数字,在这种情况下,3 行表将被更新

$array1=$nominal1;
  $sql1 = "UPDATE detailbca SET paid='1'  
WHERE mutasi IN (' . implode(',', array_map('intval', $array1)) .";
  $sql1 = $conn->query($sql);

这个查询不起作用,有什么问题?

无需再次使用implode()

您可以在$arraykodeunik列上执行这种方式array_column() ,然后使用intvalarray_map()并最终使用implode()它使用,

$email = "'" . implode("','", array_column($array, 'email')) . "'";
$nominal1 = implode(',', array_map('intval',array_column($array, 'kodeunik')));
$sql1 = "UPDATE detailbca SET paid='1' WHERE mutasi IN ($nominal1)";
$sql1 = $conn->query($sql);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM