[英]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.