【问题标题】:Expiry date IF santance is not working with MYSQL UPDATE如果 santance 不能与 MYSQL UPDATE 一起使用,则到期日期
【发布时间】:2021-08-21 16:16:33
【问题描述】:

我有很多行的表。我有 exp 日期,我想更改那些 date 已经是 exp 的行的状态。

如果我不使用 UPDATE,它会很好地工作。如果我只是回应他们。但是当我想将这一行的状态更新为 0 时,问题就开始了。我的问题是它只更改了 1 行,而不是所有需要更改状态 0 的行。

$sql = "SELECT * FROM table";
$result = mysqli_query($conn, $sql);
$resultcheck = mysqli_num_rows($result);
$id = $row['id'];

if($resultcheck > 0) {
while($row = mysqli_fetch_assoc($result)) {

$expdate = $row['date'];
$exp = strtotime($date);

$today = date('m/d/Y');
$td = strtotime($today);

if($td>$exp) {
$status=0;

$sql = " UPDATE table SET status = '$status' WHERE ID = '$id' ";
$result = mysqli_query($conn, $sql);
}
}
}

关于如何解决这个问题的任何建议,我尝试了几个选项,但没有任何效果。

【问题讨论】:

  • 您好,欢迎来到 SO!请使用tour,阅读help centerhow-to-ask 页面。我这里没有看到$id,应该是row[id]

标签: php date


【解决方案1】:
  1. 使用row['id'] 而不是$id

$sql = " UPDATE table SET status = '$status' WHERE ID = 'row['id']' ";

  1. 重命名$result 以进行更新。您正在重用相同的变量名称,因此,在成功更新后,它将设置 $resulttrue,while 循环将停止。

【讨论】:

  • 我有 $id = $row['id'];不工作。它只改变 1 行。
  • 工作。谢谢
猜你喜欢
  • 2015-08-06
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多