我有一个有很多行的表。我有exp日期,我想改变那些日期已经是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);
}
}
}
有任何建议如何解决这个问题,我尝试了几个选项,但没有工作。
- 使用
row['id']
代替$id
$sql = " UPDATE table SET status = '$status' WHERE ID = 'row['id']' ";
- 重命名
$result
进行更新。您正在重用相同的变量名,因此,在成功更新之后,它将把$result
设置为true并且while循环将停止。