如果不是当前日期,请将SQL日期变为红色

时间:2017-10-04 04:07:49

标签: php mysql sql date mysqli

我正在创建一个简单的PHP待办事项列表。如果它不是当前日期,我想将日期变为红色。这是我的代码的一部分,删除了HTML:

<?php include "connection.php";?>

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

$task = isset($_POST['task']) ? $_POST['task'] : null;
$importance = isset($_POST['importance']) ? $_POST['importance'] : null;
$due_date = isset($_POST['due_date']) ? $_POST['due_date'] : null;
$order = isset($_POST['order']) ? $_POST['order'] : null;

if(isset($task,$importance,$due_date)){
$sql = "INSERT INTO tasks (task, importance, due_date) VALUES ('$task', '$importance', '$due_date')";

$result = mysqli_query($connection, $sql);

if(!$result){
  die("Database query failed.");
}

}

}

if(isset($order)){
$sql = "SELECT * FROM tasks ORDER BY {$order}";
} else {
$sql = "SELECT * FROM tasks";
}
$result = mysqli_query($connection, $sql);

if(!$result){
  die("Database query failed.");
}

$current_date = date("Y-m-d");
if(isset($due_date)!=$current_date){
  $due_date_class="overdue";
} else {
  $due_date_class="not_overdue";
}

?>

<table>
<?php
while($column = mysqli_fetch_assoc($result)){
?>
<tr><td><?php echo $column["task"]?></td><td class="<?php echo $column["importance"] ?>"><?php echo $column["importance"]?></td><td class="<?php echo $due_date_class ?>"><?php echo $column["due_date"]?></td><td><?php echo "<a href='delete_one.php?id=".$column['id']."'>Delete</a>" ?></td></tr>
<?php
}
?>
</table>

<?php include "footer.php";?>

这是不起作用的部分。它要么将所有行都变成红色或黑色,这取决于我输入的日期:

$current_date = date("Y-m-d");
    if(isset($due_date)!=$current_date){
      $due_date_class="overdue";
    } else {
      $due_date_class="not_overdue";
    }

1 个答案:

答案 0 :(得分:1)

isset($due_date)

应改为

$due_date

因为,isset会返回值10,这将与日期进行比较,而日期将始终为false

相反,您可以执行以下操作:

if(isset($due_date))
{
$current_date = date("Y-m-d");
    if($due_date!=$current_date){
      $due_date_class="overdue";
    } else {
      $due_date_class="not_overdue";
    }
}
else
{
   echo "Not a valid Due Date";
}

<强> >>>Demo<<<

关于变量范围。

您需要在最顶层声明$due_date_class,以增加其范围,否则您将收到错误。由于此变量的范围将限制为ifelse