【问题标题】:How do I update date without changing the older date value in php?如何在不更改 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

【问题讨论】:

    标签: php mysql sql datetime sql-update


    【解决方案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 所以你应该做一个外键,而不是那样存储它们!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 2017-10-15
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多