I want to filter database records using dropdown and display it in table but my code isn’t working which the data is not displayed. Here are my codes:
This the dropdown code:
<div class="cent3">
<div class="form-group row">
<div class="col-lg-4">
<select name="month" class="form-control col-sm-12">
<option>Select Expenses Month</option>
<option value="January" style="color:black;">January</option>
<option value="February" style="color:black;">February</option>
<option value="March" style="color:black;">March</option>
<option value="April" style="color:black;">April</option>
<option value="May" style="color:black;">May</option>
<option value="June" style="color:black;">June</option>
<option value="July" style="color:black;">July</option>
<option value="August" style="color:black;">August</option>
<option value="September"style="color:black;">September</option>
<option value="October"style="color:black;">October</option>
<option value="November" style="color:black;">November</option>
<option value="December" style="color:black;">December</option>
</select>
<input type="submit" name="submit" class="btn btn-primary">
</div>
</div>
</div>
And this code for data to be display in the table:
<div class="cent3">
<div class="col-md-6">
<table class="table table-hover table-bordered" >
<tr>
<caption><p style="color:black;">Expenses by Month</p></caption>
<th><p style="color:black;">Month</p></th>
<th><p style="color:black;">Amount</p></th>
<th><p style="color:black;">Category</p></th>
</tr>
<tr>
<?php
if(isset($_POST['submit'])){
$month = $_POST['MONTH(expenses_date)'];
$amount = $_POST['totalexp'];
$category = $_POST['expenses_category'];
if ($month != "" ) {
$query = "SELECT expenses_category, SUM(expenses_amount) as totalexp,MONTHNAME(expenses_date)as month
FROM expenses
WHERE MONTH(expenses_date) = '$month' AND user_id = '$user_id'
GROUP BY expenses_category";
$data = mysqli_query($con, $query) or die('error');
if(mysqli_num_rows($data) > 0){
while($row = mysqli_fetch_assoc($data)){
$month = $row['month'];
$amount = $row['totalexp'];
$category = $row['expenses_category'];
?>
<tr>
<td><?php echo $month;?></td>
<td><?php echo $amount;?></td>
<td><?php echo $category;?></td>
</tr>
<?php
}
}
else{
?>
<tr>
<td>Records Not Found!</td>
</tr>
<?php
}
}
}
?>
</table>
</div>
</div>
Currently, I’m using date picker for expenses_date input (format ‘Y-M-D’) but I want to display it in month name. So, the data in the table should display month, total amount in category and the category
I really appreciate your help. Thank you.