如何在不更改 php 中旧日期值的情况下更新日期?
Posted
技术标签:
【中文标题】如何在不更改 php 中旧日期值的情况下更新日期?【英文标题】:How do I update date without changing the older date value in php? 【发布时间】:2020-10-24 15:50:20 【问题描述】:我正在创建一个提款功能,用户只能批量提款。如果他们在同一天进行交易。他们只能在后天撤回。这意味着他们不能在进行交易的同一天取款。但是当用户想要提取他们的钱时我遇到了一个问题。旧的 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
【问题讨论】:
【参考方案1】:我了解到您想要更新给定 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 在update
语句中支持order by
。
【讨论】:
【参考方案2】:这是因为您的 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 |
【讨论】:
感谢您的解决方案,但就像我在上面所说的I'm creating a withdraw function where user can only withdraw their money in bulk.
意味着他们必须使用相同的 id 但不同的事务。我正在批量创建更新撤回,这意味着。如果状态为unclaimed
,他们可以使用相同的 ID 声明它。更改 id 肯定会改变函数的用途。
我完全理解您的解决方案,谢谢。我知道有交易 id,但交易 id 不起作用。因为每个 id 都是不同的,我必须一一更新行。而不是批量更新。
如果你有相同的 id 所以你应该做一个外键,而不是那样存储它们!以上是关于如何在不更改 php 中旧日期值的情况下更新日期?的主要内容,如果未能解决你的问题,请参考以下文章