使用PHP

时间:2016-04-07 06:10:33

标签: 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_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>

现在我要做的是,为此设置一个过滤器。我想添加两个日期选择器,当用户单击“过滤器”按钮时,表格应仅填充在两个给定日期内发布的帖子。

我想过使用日期选择器的表单:

<form name="filter" method="POST" action="team_as.php">
    SHOW POSTS FROM:
        <input type="date" name="sdate">
        <input type="date" name="edate">
        <input type="submit" name="submit" value="Filter">
</form>

PHP来处理这些数据:

$edate = $_POST['edate'];
$sdate = $_POST['sdate'];
$filter = "AND $date < post_date > $edate";

我想知道是否有办法在$filter mysql查询中包含此$respost,如下所示:

$respost = mysqli_query($link,"SELECT * FROM table WHERE post_author=$uid $filter LIMIT 16 ");

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

3 个答案:

答案 0 :(得分:3)

一般情况下,如果你进行POST,最好在你的第二种形式中添加uid作为隐藏字段以保留它。也可以在过滤器中使用BETWEEN,因此代码应如下所示:

    <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);            
    }
    ?>

更新:顺便说一下,有一个小表格&#39; hack&#39;这允许你使用GET和POST vars(使用隐藏字段的内容),但根本不是一个好习惯,所以我不推荐它:

<form name="filter" method="POST" action="team_as.php?uid=<?php echo $uid; ?>">

当您提交此表单时,您将同时分配GET和POST数组,即您将uid作为GET var,其他所有将进入POST数组。

答案 1 :(得分:0)

您必须在隐藏字段中添加您的网址值,如此

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);

我认为它解决了你的问题

答案 2 :(得分:0)

带有日期过滤器的完整代码

<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>
相关问题