-2

the program is running perfectly but in the first run of the program it has a Notice: Undefined index: but if I submit a selected option it will disappear

    <form method="post" action="index.php">
    <select name="months" id="months">//months
    <option></option>
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>   //date values that I want to be called 
    <option value="7">July</option>   //to filter the data on selected date
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>
<input type="submit" value="submit" name="submit"/>
   </form>
    <table cellspacing="0" width="100%" id="example" class="table table-striped table-hover table-responsive">
    <thead>
    <tr>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Check In Date</th>
    <th>Check Out Date</th>  //table
    <th>Room Rate</th>
    <th>Reservation Fee</th>
    <th>Date Paid</th>
    <th>Mode of Paymnet</th>
    <th>Status</th>
    <th>edit</th>
    <th>delete</th>

    </tr>
    </thead>
    <tbody>

    //

already tried the isset still has the same output

    <?php
    require_once 'dbconfig.php';
    if (isset($_POST['months'])) {
        $months = $_POST['months'];      //also tried to use isset
    }                           
    $stmt = $db_con->prepare("SELECT * FROM tblguest WHERE MONTH(checkin) ='".$_POST['months']."' ");
    $stmt->execute();

    while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    {
        ?>
        <tr>
        <td><?php echo $row['fname']; ?></td>
        <td><?php echo $row['lname']; ?></td>
        <td><?php echo $row['checkin']; ?></td>
        <td><?php echo $row['checkout']; ?></td>
        <td><?php echo $row['rrate']; ?></td>
        <td><?php echo $row['reservefee']; ?></td>   //data selected column 
        <td><?php echo $row['datepaid']; ?></td>
        <td><?php echo $row['modepayment']; ?></td>
        <td><?php echo $row['stats']; ?></td>
        <td align="center">
        <a id="<?php echo $row['fname']." ".$row['lname']; ?>" class="edit-link" href="#" title="Edit">
        <img src="edit.png" width="20px" />
        </a></td>
        <td align="center"><a id="<?php echo $row['fname']." ".$row['lname']; ?>" class="delete-link" href="#" title="Delete">
        <img src="delete.png" width="20px" />
        </a></td>
        </tr>
        <?php
    }
    ?>
    </tbody>  
    </table>  

2 Answers2

0

check here

if (isset($_POST['months'])) {
    $months = $_POST['months'];      //also tried to use isset
}else{
    $months='';
}                           
$stmt = $db_con->prepare("SELECT * FROM tblguest WHERE MONTH(checkin) ='".$months."' ");
Rakesh Sojitra
  • 3,538
  • 2
  • 17
  • 34
0

Since you're submitting the form, you should use isset($_POST['submit']) i.e whether the form submit button has been clicked.

<?php 
require_once 'dbconfig.php';

if (isset($_POST['submit'])) {

    $months = $_POST['months'];   

    $stmt = $db_con->prepare("SELECT * FROM tblguest WHERE MONTH(checkin) ='".$_POST['months']."' ");

    $stmt->execute();

   while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {   
?>   

   <!-- Write your HTML Table code here -->


 <?php } } ?>

In this case, your entire HTML table will be shown only if the form is submitted and records are fetched.

Indrasis Datta
  • 8,692
  • 2
  • 14
  • 32