У меня есть фильтр рабочей даты с PHP. Проблема в том, что если я не фильтрую свои записи, то никакие записи не отображаются, а также я получаю этот тип ошибки:
Примечание: неопределенный индекс: dateFrom in … в строке 37
Как я могу создать фильтр дат с использованием PHP, чтобы, если я не добавлял даты в свой фильтр, он отображал все записи, а если я добавлял даты для фильтрации, он отображал только отфильтрованные записи?
Вот мой код:
<?php
include('config/connect.php');
$query=mysqli_query($connect,"SELECT * FROM tasks");
?>
<table>
<tr>
<th>Title</th>
<th>Due Date</th>
<th>Edit | View</th>
</tr>
<?php
//GETTING VALUE FROM FILTER
$new_date = date('Y-m-d', strtotime($_POST['dateFrom']));
//echo $new_date;
$new_date2 = date('Y-m-d', strtotime($_POST['dateTo']));
//echo $new_date2;
$dateFrom = date('Y-m-d', strtotime($_POST['dateFrom']));
$dateTo = date('Y-m-d', strtotime($_POST['dateTo']));
while($row=mysqli_fetch_array($query)){
//FILTERING USING DATES
if (($row['due_date'] > $dateFrom) && ($row['due_date'] < $dateTo)){
?>
<tr>
<td><?php echo $row['title'] ?></td>
<td><?php echo $row['due_date'] ?></td>
<td><a href="edit_task.php?id=<?php echo $row['id'];?>"> <button type="button">Edit</button> </a> | <a href="view_task.php?id=<?php echo $row['id'];?>"> <button type="button">View</button> </a></td>
</tr>
<?php }} ?>
</table>
вам нужно изменить date('Y-m-d', strtotime($row['due_date']));
вместо $row['due_date']
как это
if (date('Y-m-d', strtotime($row['due_date']))>$dateFrom && date('Y-m-d', strtotime($row['due_date'])) < $dateTo){
и вам нужно сначала проверить переменную isset();
ваш код должен быть таким
<?php
if (isset($_POST['dateFrom'])) {//GETTING VALUE FROM FILTER
$new_date = date('Y-m-d', strtotime($_POST['dateFrom']));
//echo $new_date;
$new_date2 = date('Y-m-d', strtotime($_POST['dateTo']));
//echo $new_date2;
$dateFrom = date('Y-m-d', strtotime($_POST['dateFrom']));
$dateTo = date('Y-m-d', strtotime($_POST['dateTo']));
while($row=mysqli_fetch_array($query)){
//FILTERING USING DATES
if (date('Y-m-d', strtotime($row['due_date']))>$dateFrom && date('Y-m-d', strtotime($row['due_date'])) < $dateTo){
?>
<tr>
<td><?php echo $row['title'] ?></td>
<td><?php echo $row['due_date'] ?></td>
<td><a href="edit_task.php?id=<?php echo $row['id'];?>"> <button type="button">Edit</button> </a> | <a href="view_task.php?id=<?php echo $row['id'];?>"> <button type="button">View</button> </a></td>
</tr>
<?php }
}
}
?>
Других решений пока нет …