Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP按日期筛选SQL结果_Php_Html_Mysql_Datetime - Fatal编程技术网

使用PHP按日期筛选SQL结果

使用PHP按日期筛选SQL结果,php,html,mysql,datetime,Php,Html,Mysql,Datetime,我通过PHP从SQL表中获取数据以填充HTML表。我就是这样做的: <table class="posts"> <?php $respost = mysqli_query($link,"SELECT * FROM table WHERE post_author=$uid LIMIT 16 "); $row_count=0; $col_count=0; while($rowpost = mysqli

我通过PHP从SQL表中获取数据以填充HTML表。我就是这样做的:

<table class="posts">
        <?php 
        $respost = mysqli_query($link,"SELECT * FROM table WHERE post_author=$uid LIMIT 16 ");
        $row_count=0;
        $col_count=0;
        while($rowpost = mysqli_fetch_array($respost)) {
            if($row_count%4==0){
                echo "<tr>";
                $col_count=1;
            }?>
            <td>
            <?php
            $imageid = $rowpost['thumbnail_link'];
            <img src="<?php echo $imageid; ?>" alt="" class="img-responsive" height="220px" height="220px">
            <h3><?php echo $rowpost['post_title']; ?></h3>
            <h4><?php echo (substr($rowpost['post_excerpt'],0,30)); ?></h4>
            <h5><?php echo $rowpost['post_date']; ?></a></h5>
            </td>
            <?php 
            if($col_count%4==0){
                echo "</tr>";
            }
            $row_count++; 
            $col_count++; 
        }
        ?>
</table>

还请注意,
$uid
是使用
$\u GET[]
方法从上一页获取的。所以这个页面的链接看起来像
www.mysite.com/page?uid=66
。所以想知道使用POST和表单过滤是否有效?

一般来说,如果您使用POST,最好在您的第二个表单中添加
uid
作为隐藏字段以保留它。在过滤器中也使用BETWEEN,因此代码应如下所示:

$respost = mysqli_query($link,"SELECT * FROM table WHERE post_author=$uid $filter LIMIT 16 ");
    <form name="filter" method="POST" action="team_as.php">
        <input type="hidden" name="uid" value="<?php echo $uid; ?>">
        SHOW POSTS FROM:
        <input type="date" name="sdate">
        <input type="date" name="edate">
        <input type="submit" name="submit" value="Filter">
    </form>
    <?php
    if(isset($_POST['submit'])){
        $uid = $_POST['uid'];
        $edate = $_POST['edate'];
        $sdate = $_POST['sdate'];
        $filter = "AND DATE(post_date) BETWEEN '$sdate' AND '$edate'";
        $query = "SELECT * FROM table WHERE post_author=$uid $filter LIMIT 16 ";
        $respost = mysqli_query($link, $query);
    }else{
        $query = "SELECT * FROM table WHERE post_author=$uid LIMIT 16 ";
        $respost = mysqli_query($link, $query);            
    }
    ?>


您必须像这样在隐藏字段中添加url值

if(isset($_GET['uid']))
{
  $uid=mysqli_real_escape_string($_GET['uid']);
}  
<form name="filter" method="POST" action="team_as.php">
SHOW POSTS FROM:
    <input type="date" name="sdate">
    <input type="date" name="edate">
    <input type="hidden" name="uid" value="<?php echo $uid; ?>">
    <input type="submit" name="submit" value="Filter">
</form>
if(isset($\u GET['uid']))
{
$uid=mysqli\u real\u escape\u字符串($\u GET['uid']);
}  
显示来自以下站点的帖子:

完整的日期过滤器代码

<div class="table-responsive m-t-10">
                                    <form class="form-group" method='post' style="margin-bottom: -5px;">
                          Start Date <input class="form-group" type='date' class='dateFilter' name='dateFrom' value='<?php if(isset($_POST['dateFrom'])) echo $_POST['dateFrom']; ?>'>

                          End Date <input class="form-group" type='date' class='dateFilter' name='dateTo' value='<?php if(isset($_POST['dateTo'])) echo $_POST['dateTo']; ?>'>

                          <input type='submit' name='but_search' value='Search'>
                        </form> 
                                       <table id="myTable"  class="table table-bordered table-striped dataTable no-footer" role="grid">
                                            <!--<table class="display nowrap table table-hover table-striped table-bordered" cellspacing="0" width="100%">-->
                                            <thead>
                                                <tr>
                                                  <th>Date</th>
                                                  <th>Customer Name</th>
                                                  <th>Company</th>
                                                  <th>Userid</th>
                                                  <th>Address</th>
                                                  <th>Area</th>
                                                  <th>Contact</th>
                                                  <th style="display:none">Location</th>
                                                  <th style="display:none">Product Id</th>
                                                  <th>Software Id</th>
                                                  <th>Product Key</th>
                                                  <th>Validity</th>
                                                  <th>Unpaid Amount</th>
                                                  <th>Action</th>
                                                  <th>Enab/Disa</th>
                                                  <th >Delete</th>
                                                </tr>
                                            </thead>
                                            <tfoot style="display:none">
                                                <tr>
                                                    <th>Date</th>
                                                    <th>Name</th>
                                                    <th>Userid</th>
                                                    <th>Address</th>
                                                    <th>Area</th>
                                                    <th>Contact</th>
                                                    <th>Software</th>
                                                    <th>Location</th>
                                                    <th>Product Id</th>
                                                    <th>Validity</th>
                                                    <th>Unpaid Amount</th>
                                                    <th>Action</th>
                                                    <th>Enab/Disa</th>
                                                    <th>Delete</th>
                                                </tr>
                                            </tfoot>
                                            <tbody>
                                            <?php
                                          $ses = $_SESSION["userid"];
                                          $result = mysqli_query($con, "select id from cmp_user where userid='$ses'");
                                          while ($res = mysqli_fetch_array($result)) {
                                              $uid =$res['id'];
                                          }
                                          ?>

                                                    <?php
                                                     $dateFrom = date('Y-m-d', strtotime($_POST['dateFrom']));
                                                     $dateTo = date('Y-m-d', strtotime($_POST['dateTo']));
                                                    $result= mysqli_query($con, "select * from cmp_customer");
                                                    while ($res = mysqli_fetch_array($result)) {
                                                        if (date('Y-m-d', strtotime($res['date']))>$dateFrom && date('Y-m-d', strtotime($res['date'])) < $dateTo) {
                                                            ?>
                                                        echo "<tr>"; ?>
                                                    <td><?php echo $res["date"]; ?></td>
                                                    <td><?php echo $res["c_name"]; ?></td>
                                                    <td><?php echo $res["company"]; ?></td>
                                                    <td><?php echo $res["userid"]; ?></td>
                                                    <td><?php echo substr($res["address"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["zipcode"], 0, 15); ?></td>
                                                    <td><?php echo $res["contact"]; ?></td>
                                                    <td style="display:none"><?php echo $res["location"]; ?></td>
                                                    <td style="display:none"><?php echo substr($res["productid"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["softwareid"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["productkey"], 0, 15); ?></td>
                                                    <td><?php echo $res["Validity"]; ?></td>
                                                    <td><?php echo $res["unpaidamt"]; ?></td>
                                                    <td><A class='btn btn-outline-success btn-sm' href="update_customer.php?id=<?php echo $res['id']; ?>">Edit</A></td>
                                                    <?php if ($res["status"] == 1) {
                                                                ?>
                                                         <td> <a class='btn btn-success btn-sm' onclick="return confirm('Are you sure want Disable this Customer ?')" href="customerstatusdisable.php?userid=<?php echo $res['userid']; ?>">Enable
                                                        </a></td>
                                                        <?php
                                                            } else { ?>
                                                     <td><a class='btn btn-danger btn-sm' onclick="return confirm('Are you sure want Enable this Customer ?')" href="customerstatus.php?userid=<?php echo $res['userid']; ?>">Disable
                                                        </a></td>

                                                         <?php } ?>
                                                    <td><a class='btn btn-outline-danger btn-sm' onclick="return confirm('Are you sure want delete this Customer ?')" href="delete_customer.php?id=<?php echo $res['id']; ?>">Delete
                                                        <i class="fa fa-trash" title="Delete" ></i></a></td>
                                                  <?php echo "</tr>";
                                                        }
                                                    } ?>


                                            </tbody>
                                        </table>
                                    </div>


开始日期我添加了这个并提交了,页面刷新时链接末尾没有显示
?uid=66
,仍然显示与以前相同的结果。没有过滤。uid很重要,因为页面应该只显示该用户完成的帖子。同样供参考,发布日期的格式如下:
2014-03-11 12:25:41
Yes,因为您正在发布。但是,
uid
变量将存在,因此您可以像往常一样使用它。最简单的检查方法是执行
echo$respost
以检查整个查询的外观。关于日期格式,我已经更新了
$filter
部分中的代码。@YohanBlake,我对如何使用GET和POST进行了一些小的更新,但同样,这不是一个好的做法。@Chay22,你的评论与这个主题有什么关系?
<form name="filter" method="POST" action="team_as.php?uid=<?php echo $uid; ?>">
if(isset($_GET['uid']))
{
  $uid=mysqli_real_escape_string($_GET['uid']);
}  
<form name="filter" method="POST" action="team_as.php">
SHOW POSTS FROM:
    <input type="date" name="sdate">
    <input type="date" name="edate">
    <input type="hidden" name="uid" value="<?php echo $uid; ?>">
    <input type="submit" name="submit" value="Filter">
</form>
 if(isset($_POST['submit']))
 {
  $uid=mysqli_real_escape_string($_POST['uid']);
  $edate = mysqli_real_escape_string($_POST['edate']);
  $sdate = mysqli_real_escape_string($_POST['sdate']);
 }
 $sql="SELECT * FROM table WHERE post_author='$uid'";
 if(isset($_POST['submit']))
  {
   $sql.= " AND $date < post_date > $edate";
  }  
 $respost = mysqli_query($link,$sql);
<div class="table-responsive m-t-10">
                                    <form class="form-group" method='post' style="margin-bottom: -5px;">
                          Start Date <input class="form-group" type='date' class='dateFilter' name='dateFrom' value='<?php if(isset($_POST['dateFrom'])) echo $_POST['dateFrom']; ?>'>

                          End Date <input class="form-group" type='date' class='dateFilter' name='dateTo' value='<?php if(isset($_POST['dateTo'])) echo $_POST['dateTo']; ?>'>

                          <input type='submit' name='but_search' value='Search'>
                        </form> 
                                       <table id="myTable"  class="table table-bordered table-striped dataTable no-footer" role="grid">
                                            <!--<table class="display nowrap table table-hover table-striped table-bordered" cellspacing="0" width="100%">-->
                                            <thead>
                                                <tr>
                                                  <th>Date</th>
                                                  <th>Customer Name</th>
                                                  <th>Company</th>
                                                  <th>Userid</th>
                                                  <th>Address</th>
                                                  <th>Area</th>
                                                  <th>Contact</th>
                                                  <th style="display:none">Location</th>
                                                  <th style="display:none">Product Id</th>
                                                  <th>Software Id</th>
                                                  <th>Product Key</th>
                                                  <th>Validity</th>
                                                  <th>Unpaid Amount</th>
                                                  <th>Action</th>
                                                  <th>Enab/Disa</th>
                                                  <th >Delete</th>
                                                </tr>
                                            </thead>
                                            <tfoot style="display:none">
                                                <tr>
                                                    <th>Date</th>
                                                    <th>Name</th>
                                                    <th>Userid</th>
                                                    <th>Address</th>
                                                    <th>Area</th>
                                                    <th>Contact</th>
                                                    <th>Software</th>
                                                    <th>Location</th>
                                                    <th>Product Id</th>
                                                    <th>Validity</th>
                                                    <th>Unpaid Amount</th>
                                                    <th>Action</th>
                                                    <th>Enab/Disa</th>
                                                    <th>Delete</th>
                                                </tr>
                                            </tfoot>
                                            <tbody>
                                            <?php
                                          $ses = $_SESSION["userid"];
                                          $result = mysqli_query($con, "select id from cmp_user where userid='$ses'");
                                          while ($res = mysqli_fetch_array($result)) {
                                              $uid =$res['id'];
                                          }
                                          ?>

                                                    <?php
                                                     $dateFrom = date('Y-m-d', strtotime($_POST['dateFrom']));
                                                     $dateTo = date('Y-m-d', strtotime($_POST['dateTo']));
                                                    $result= mysqli_query($con, "select * from cmp_customer");
                                                    while ($res = mysqli_fetch_array($result)) {
                                                        if (date('Y-m-d', strtotime($res['date']))>$dateFrom && date('Y-m-d', strtotime($res['date'])) < $dateTo) {
                                                            ?>
                                                        echo "<tr>"; ?>
                                                    <td><?php echo $res["date"]; ?></td>
                                                    <td><?php echo $res["c_name"]; ?></td>
                                                    <td><?php echo $res["company"]; ?></td>
                                                    <td><?php echo $res["userid"]; ?></td>
                                                    <td><?php echo substr($res["address"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["zipcode"], 0, 15); ?></td>
                                                    <td><?php echo $res["contact"]; ?></td>
                                                    <td style="display:none"><?php echo $res["location"]; ?></td>
                                                    <td style="display:none"><?php echo substr($res["productid"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["softwareid"], 0, 15); ?></td>
                                                    <td><?php echo substr($res["productkey"], 0, 15); ?></td>
                                                    <td><?php echo $res["Validity"]; ?></td>
                                                    <td><?php echo $res["unpaidamt"]; ?></td>
                                                    <td><A class='btn btn-outline-success btn-sm' href="update_customer.php?id=<?php echo $res['id']; ?>">Edit</A></td>
                                                    <?php if ($res["status"] == 1) {
                                                                ?>
                                                         <td> <a class='btn btn-success btn-sm' onclick="return confirm('Are you sure want Disable this Customer ?')" href="customerstatusdisable.php?userid=<?php echo $res['userid']; ?>">Enable
                                                        </a></td>
                                                        <?php
                                                            } else { ?>
                                                     <td><a class='btn btn-danger btn-sm' onclick="return confirm('Are you sure want Enable this Customer ?')" href="customerstatus.php?userid=<?php echo $res['userid']; ?>">Disable
                                                        </a></td>

                                                         <?php } ?>
                                                    <td><a class='btn btn-outline-danger btn-sm' onclick="return confirm('Are you sure want delete this Customer ?')" href="delete_customer.php?id=<?php echo $res['id']; ?>">Delete
                                                        <i class="fa fa-trash" title="Delete" ></i></a></td>
                                                  <?php echo "</tr>";
                                                        }
                                                    } ?>


                                            </tbody>
                                        </table>
                                    </div>