简体   繁体   中英

How to get the previous day (continous)

Hello guys I want to get the information of previous date or last day only when I press the button and it will display the all information last day (saturday) and if I click the button again it will shows information of last last day (friday) and if I click it again (thursday) thanks for helping me guys

EDITED:

generate_attendance.php

if(isset($_POST['submit1'])){
                                 $prev_date= date('Y/m/d',strtotime("-1 days"));


                                    $query=mysqli_query($dbcon,"select * from attendance where date_added '$prev_date'")or die(mysql_error());
                                    while($row=mysqli_fetch_array($query)){

                                    $attendance_id=$row['attendance_id'];


                                    ?>

                                    <tr>
                                       <td><?php echo $row['lastname'].', '.$row['firstname']; ?></td>
                                       <td><?php echo $row['course']; ?></td>
                                       <td><?php echo $row['type']; ?></td>
                                       <td><?php echo $row['year_level']; ?></td>                                           <td><?php echo $row['date_added']; ?</td>                                
                                    </tr>
                                    <?php

            <div class="controls">


                            <button name="submit1" type="submit1" class="btn btn-success"><i class="icon-plus-sign icon-large"></i> Previous Day</button>
                </div>
            </div>

generate_attendance.php (full code)

<div class="container">
    <div class="margin-top">
        <div class="row">   
                            <div class="alert alert-info">
                                <button type="button" class="close" data-dismiss="alert">&times;</button>
                                <strong><i class="icon-user icon-large"></i>&nbsp;Attendance Report</strong>
                            </div>

    <div class="span12">    
       <center class="title">
                    <h1>Attendance List</h1>
                    </center>

                            <div class="pull-right">
                            <a href="" onclick="window.print()" class="btn btn-info"><i class="icon-print icon-large"></i> Print</a>
                            </div>  
    <form method="post">
    <div class="span3">



                                        <div class="control-group">
            <label class="control-label" for="inputEmail"><!-- Attendance Report --></label>
            <div class="controls">
            <label class="control-label" for="inputEmail">From</label>
                <div class="controls">
                <input type="date" name="from_date" id="date1" alt="date" class="IP_calendar" title="d/m/Y">
                </div>
            </div>
        </div>
            <div class="control-group"> 
                <label class="control-label" for="inputEmail">To Date</label>
                <div class="controls">
                    <input type="date" name="to_date" id="date2" alt="date" class="IP_calendar" title="d/m/Y">
            <!--    <input type="text"  class="w8em format-d-m-y highlight-days-67 range-low-today" name="due_date" id="sd" maxlength="10" style="border: 3px double #CCCCCC;" required/> -->
                </div>
            </div>
            <div class="control-group"> 
                <div class="controls">

                            <button name="submit" type="submit" class="btn btn-success"><i class="icon-plus-sign icon-large"></i> Search</button>
                </div>
            </div>
            <div class="controls">


                            <button name="submit1" type="submit1" class="btn btn-success"><i class="icon-minus-sign icon-large"></i> Previous Day</button>
                </div>
            </div>



            <div class="span8">
                    <div class="alert alert-success"><strong>Attendance Report</strong></div>
                        <table cellpadding="0" cellspacing="0" border="0" class="table" id="example">

                            <thead>
                                <tr>



                                        <th>Name</th>
                                        <th>Program Code</th>
                                        <th>Type</th>
                                        <th>Year level</th>
                                        <th>Date Log-in</th>

                                </tr>
                            </thead>
                           <tbody>
                                <?php
                    if(isset($_POST['submit'])){
                                    $from_date=$_POST['from_date'];
                                    $to_date=$_POST['to_date'];

                                    $query=mysqli_query($dbcon,"select * from attendance where date_added between '$from_date' and '$to_date'")or die(mysql_error());
                                    while($row=mysqli_fetch_array($query)){

                                    $attendance_id=$row['attendance_id'];


                                    ?>

                                    <tr>
                                       <td><?php echo $row['lastname'].', '.$row['firstname']; ?></td>
                                       <td><?php echo $row['course']; ?></td>
                                       <td><?php echo $row['type']; ?></td>
                                       <td><?php echo $row['year_level']; ?></td>
                                       <td><?php echo $row['date_added']; ?></td>

                                    </tr>
                                    <?php
                                    }}
?>

       <?php


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



                                      $prev_date= date('Y/m/d',strtotime("-1 days"));

                                    $query=mysqli_query($dbcon,"select * from attendance where date_added between '$curr_date' and '$prev_date'")or die(mysql_error());
                                    while($row=mysqli_fetch_array($query)){

                                    $attendance_id=$row['attendance_id'];


                                    ?>

                                    <tr>
                                       <td><?php echo $row['lastname'].', '.$row['firstname']; ?></td>
                                       <td><?php echo $row['course']; ?></td>
                                       <td><?php echo $row['type']; ?></td>
                                       <td><?php echo $row['year_level']; ?></td>
                                       <td><?php echo $row['date_added']; ?></td>

                                    </tr>
                                    <?php
                                    }}
                                    ?>

                            </tbody>
                        </table>

            </form>
        </div>      
        </div>      

        </div>
    </div>
</div>

Probably pass a query parameter, that indicates how many dates it should subtract, so the url looks like this:

yourphpscript.php? days = 3

Then you can get that in the php, and change the date building:

$days = $_GET["days"];
if(!isset($days)){
 $days = 1;
}
$days = intval($days);
$prev_date= date('Y/m/d',strtotime("-".$days." days"));

So now the only thing thats missing, is to change the url of the next request, which would look like this:

<form href="?days=<?php echo $days+1;?>" >

You can send the currently displayed date back to the server within the POST-data.

<input type="hidden" name="currently_displayed" value="<?php echo $prev_date ?>">
<button name="submit1" type="submit1" class="btn btn-success"><i class="icon-plus-sign icon-large"></i> Previous Day</button>

Then within your PHP:

if (isset($_POST['currently_displayed'])) {
    // Convert as unix-timestamp
    $currentlyDisplayed = strtotime($_POST['currently_displayed']);
} else {
    // Not posted, assuming user wants to see yesterday (thus $currentlyDisplayed should be today/now)
    $currentlyDisplayed = time();
}
// strtotime( $formatString, $relativeTo );
$prev_date= date('Y/m/d',strtotime("-1 days", $currentlyDisplayed));

I would suggest you to use javascript/JQuery AJAX request instead, you can change it instantly and you can KEEP TRACK of how many clicks you did for the number of previous days ! You don't need if isset POST submit1 anymore.

  1. On the button "Submit1" , have an onclick function to AJAX request that sends the value of numberPrevDays. Make sure to KEEP track of this clicks (Heck you can even have another button which is for the next day). There are several ways to do this. Either to just have a global variable that will keep incrementing (or decrementing) BEFORE sending to the AJAX request

  2. Have a seperate file & function php where the it receives the number of Prev days. This file will process the data and output response json your SQL mysqli_fetch_array data

  3. With that output response, just empty and reload the table with the new data

Sorry I didn't write the actual code

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM