繁体   English   中英

如何在不更改 php 中的旧日期值的情况下更新日期?

[英]How do I update date without changing the older date value in php?

我正在创建提款 function,用户只能在其中批量提款。 如果他们在同一天进行交易。 他们只能在后天收回。 这意味着他们不能在进行交易的同一天取款。 但是当用户想要取钱时我遇到了问题。 旧的 date_claim 也发生了变化。

---------------------
|id   |transac_date | total | status  | date_claim |
--------------------------------------------------
|abc1 | 2020-10-07  | 98   | claimed  | 2020-10-10 |
|abc1 | 2020-10-22  | 124  |unclaimed | null       |
|abc1 | 2020-10-24  | 145  |unclaimed | null       |

在这种情况下,用户试图transaction date on 2020-10-22


if(isset($_POST['withdraw']))
{
   $id= $_GET['id'];
   $sql="UPDATE tbl_kqd SET status ='claimed', date_claim = CURRENT_DATE()
        WHERE id = '$id' AND 
        DATE(transac_date) !=CURRENT_DATE() ";
   $sql_claim = mysqli_query($link, $sql);
   
   if (mysqli_affected_rows($link) > 0){
    echo "<script>alert('Successfully Claimed!')</script>";
    echo "<script>window.location = 'claim.php'</script>";  
   }
  else
    echo "<script>alert('Please try tomorrow!')</script>";
}


//the output


---------------------
|id   |transac_date | total | status  | date_claim |
--------------------------------------------------
|abc1 | 2020-10-07  | 98   | claimed  | 2020-10-24 |
|abc1 | 2020-10-22  | 124  | claimed  | 2020-10-24 |
|abc1 | 2020-10-24  | 145  |unclaimed | null       |

该查询也使旧日期发生了变化。 我不希望它更改已声明的日期。 我该如何解决这个问题?

在数据库中,我将date_claim as date

发生这种情况是因为您的 Id 在 3 行上是相同的。! 为每一行创建一个唯一的 id 将修复它。

---------------------
|id   |transac_date | total | status  | date_claim |
--------------------------------------------------
|abc1 | 2020-10-07  | 98   | claimed  | 2020-10-24 |
|abc2 | 2020-10-22  | 124  | claimed  | 2020-10-24 |
|abc3 | 2020-10-24  | 145  |unclaimed | null       |

我知道您想更新给定id的第一个“无人认领”行,并且其transac_date与今天不同。 这是一种表达方式:

update tbl_kqd 
set status ='claimed', date_claim = current_date()
where id = ? and transac_date <> current_date and status = 'unclaimed'
order by transac_date 
limit 1

MySQL 支持order by in update语句。

暂无
暂无

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

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