在php中更新mysql表,并为每个受影响的行存储ID

时间:2018-02-28 16:48:59

标签: php mysql

我正在尝试在php脚本中使用MySQL select的结果,并在同一个表中进行一些更新。

对于以下查询,我需要查看每条记录并说“if order_status ='S',将is_placement设置为1(这是一点)并将date_updated设置为curdate()”

我可以通过更新来做到这一点,但诀窍是我需要将状态为'S'的order_id存储在一个数组中,以便在另一个查询中使用。

我不确定如何将其循环并存储在数组中。

这是选择:

$orderCheck = "
    SELECT 
        order_id,
        order_status
    FROM order_status
 ";

编辑(基于以下答案):所以我可以制作一系列订单ID,如下所示:

$result = mysqli_query($connection,$orderCheck);
while ($row = mysqli_fetch_array($result))
    {
        $array = $row['order_id'}
        if($row['order_status'] == 'S'){
        Store ORder IDs here}
    }

但是使用该数组和存储的订单ID,我需要更新每个ID的记录。

我如何预先形成更新并存储必要的ID?

2 个答案:

答案 0 :(得分:0)

$orderCheck = "SELECT 
        order_id,order_status FROM jfi_sales.order_status ";
   $result = mysql_query($orderCheck );
   $ids= array();

  while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
     if($row['order_status'] == 'S'){
        $ids[]= $row['order_id'];
     }
  }
print_r($ids);

现在$ids是订单ID的数组,其订单状态为“S”。请尝试此操作。

答案 1 :(得分:0)

以下内容将以您需要的方式存储数据:

$result = mysql_query($orderCheck);
$order_ids = array();

while ($row = mysql_fetch_array($result))
    {
    $order_id = $row['order_id'];
    if ($row['order_status'] == "S")
        {
        array_push($order_ids, $order_id);
        }
    }