Skip to content
Advertisement

Displaying data from mysql from datepicker

I need some suggestions/help with my code. Code:

<form method='post' action='' autocomplete="off">
Start Date <input type='text' class='dateFilter' name='fromDate' value='<?php if(isset($_POST['fromDate'])) echo 
$_POST['fromDate']; ?>'>
End Date <input type='text' class='dateFilter' name='endDate' value='<?php if(isset($_POST['endDate'])) echo 
$_POST['endDate']; ?>'>
<input type='submit' name='but_search' value='Search'>
</form>

 <table border='1' width='100%' style='border-collapse: collapse;margin-top: 20px;'>
   <tr>
     <th>EmployeeName</th>
     <th>WorkDate</th>
     <th>WorkType</th>
     <th>CustomerName</th>
   </tr>

   <?php
   $emp_query = "SELECT * FROM employees WHERE 1";

   // Date filter
   if(isset($_POST['but_search'])){
      $fromDate = $_POST['fromDate'];
      $endDate = $_POST['endDate'];

      if(!empty($fromDate) && !empty($endDate)){
         $emp_query .= " and workdate 
                      between '".$fromDate."' and '".$endDate."' ";
      }
    }

    // Sort
    $emp_query .= " ORDER BY id ASC";
    $employeesRecords = mysqli_query($conn,$emp_query);

    // Check records found or not
    if(mysqli_num_rows($employeesRecords) > 0){
      while($empRecord = mysqli_fetch_assoc($employeesRecords)){
        $id = $empRecord['id'];
        $empName = $empRecord['username'];
        $date_of_join = $empRecord['workdate'];
        $gender = $empRecord['worktype'];
        $email = $empRecord['customername'];


        echo "<tr>";
        echo "<td>". $empName ."</td>";
        echo "<td>". $date_of_join ."</td>";
        echo "<td>". $gender ."</td>";
        echo "<td>". $email ."</td>";
        echo "</tr>";
      }
    }else{
      echo "<tr>";
      echo "<td colspan='4'>No record found.</td>";
      echo "</tr>";
    }
    ?>
  </table>
 </div>

When i select dateFrom and dateTo, everything works like a charm and form shows me records from db between two dates, but what i need: I want to display data for specific user. Example: I choose Employee Name > Micheal from and form shows me data for Micheal only, when i choose David, shows only for David not all employees. How can i do this?

I have database with 3 tables: employees, accounts and customers.

Under employees i have columns: id, username, workdate, startdate and enddate.

Advertisement

Answer

  1. First: You should add a select option to your form, and on each row set the id as value.

  2. Second: You need to get the id with: $id = $_POST[‘id’];

  3. Third: Finally, you need to change your query to:

SELECT * FROM employees WHERE workdate BETWEEN ‘”.$fromDate.”‘ AND'”.$endDate.”‘ AND id = $id

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement