2017-10-04 4 views
0

私は単純なPHPのリストを作成しています。私はそれが現在の日付でない場合、日付を赤にしたいと思います。私のコードの一部で、HTMLが削除されています。現在の日付でない場合は、SQLの日付を赤にします。

<?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";?> 

これは機能しない部分です。それはどちらかだ、私が入力した内容の日付に応じて、赤や黒のすべての行を回す:issetがあろう、値1または0を返します、ので

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

「due_date」の値は何ですか? – Ravi

+0

due_dateの値は、フォームに入力する内容によって異なりますが、y-m-d形式です。したがって、今日の価値は2017-10-03になります。 – Julian

答えて

1
isset($due_date) 

$due_date 

に変更する必要があります日付と比較すると、いつも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に限定されるため、

+0

私はちょうどそれを試み、私のページ全体が壊れて、このエラーが表示されました:Notice:未定義の変数:C:\ wamp \ www \ to_do_list \ index.phpの95行目のdue_date_class – Julian

+0

@Julian最新の変更を試しましたか? – Ravi

+0

はい、私のページが壊れます。 – Julian

関連する問題