再次过滤结果在php中

时间:2016-08-09 07:09:41

标签: php mysql

我有一个php,mysql数据库名称daily_data2我可以使用日期timepicker(第一个查询)过滤日期范围中的表,我也可以按照每个dept(第二个查询)进行过滤,这两个过滤选项在不同的按钮中工作,但我的问题是如何使用第一个查询中的结果来过滤每个部门(第二个查询)?或者我应该只在1个条件下合并我的2个查询?有人能帮我吗。以下是我的代码。

 <?php

 $post_at = "";
 $post_at_to_date = "";

 if(isset($_POST['post_at']) && isset($_POST['post_at_to_date']))
  {
    $post_at = $_POST['post_at'];
    $post_at_to_date = $_POST['post_at_to_date'];
    $query = "SELECT * FROM daily_data2 WHERE Checkdate between '" . $post_at . "' and '" . $post_at_to_date . "'";

    $search_result = filter($query);
  }
  else {
    $sql = "SELECT * FROM daily_data2";
    $search_result = filter($sql);
  }
  function filter($query)
  {
    $connect = mysqli_connect("localhost", "root", "","bio_db");
    $filter_Result = mysqli_query($connect, $query);
    return $filter_Result;
  }             

 ?>

 <?php

  if(isset($_POST['go']))
  {
    $cmbDept = $_POST['cmbDept'];
    $query ="SELECT * FROM $row array WHERE Campaign LIKE '".$cmbDept."' ";
    $search_result = filterTable($query);
  }
 function filterTable($query)
 {
    $connect = mysqli_connect("localhost", "root", "","bio_db");
    $filter_Result = mysqli_query($connect, $query);
    return $filter_Result;
  }             

 ?>
  <html>
  <head>
  <title>Employee Logs</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <style>
        .table-content{border-top:#CCCCCC 4px solid; width:50%;}
.table-content th {padding:5px 20px; background: #F0F0F0;vertical-align:top;} 
.table-content td {padding:5px 20px; border-bottom: #F0F0F0 1px solid;vertical-align:top;} 
  </style>
  </head>

  <body>
    <h2 align="center">Time and Attendance Monitoring</h2>

    <center>

 <form name="frmSearch" method="POST" action="index.php">
    <p class="search_input">
    <input type="text" placeholder="From Date" id="post_at" name="post_at"  value="<?php echo $post_at; ?>" class="input-control" />
        <input type="text" placeholder="To Date" id="post_at_to_date" name="post_at_to_date" style="margin-left:10px"  value="<?php echo $post_at_to_date; ?>" class="input-control"  />             
    <input type="submit" name="search" value="Search" >
    </p>


    <form method="POST" action="excel.php">
        <input type="hidden" name="cmbDept" value="<?php echo isset($_POST['cmbDept']) ? $_POST['cmbDept'] : ''; ?>"> 
        <input type="submit" name="export_excel" class="btn btn-success" value="Export to Excel">
        </form> 




    <form action="index.php" method="post">
    <select id="cmbDept" name="cmbDept">
        <option value = '' selected="selected">Filter by Department</option>
            <option value = 'TKV'>TKV</option>
            <option value = 'NA'>NA</option>
            <option value = 'PURE-INC'>PURE INC</option>
            <option value = 'DUTY-FREE'>DUTY-FREE</option>
            <option value = 'HQL'>HQL</option>
            <option value = 'PRO-XPN'>PRO-XPN</option>
            <option value = 'Mate1'>Mate1</option>
            <option value = 'STUDENT-rUS'>STUDENT-rUS</option>
            <option value = 'COLLECTIONS'>COLLECTIONS</option>
            <option value = 'NTD'>NTD</option>
            <option value = 'DATA RESEARCHER'>DATA RESEARCHER</option>
            <option value = 'VA'>DATA RESEARCHER</option>

        </select>           
        <input type="submit" name="go" value="Filter"><br><br>

     </center>

     <table align="center" width="600" border="1" cellpadding="1" cellspacing="1">
        <tr>
            <th>Userid</th>
            <th>Name</th>
            <th>Campaign</th>
            <th>Checkdate</th>
            <th>Hoursworked</th>
            <th>Overtime</th>
        </tr>

     <?php while($row = mysqli_fetch_array($search_result)):?>
        <tr>
            <td style="text-align:center;"><?php echo $row['Userid'];?></td>
            <td width="200"><?php echo $row['Name'];?></td>
            <td style="text-align:center;"><?php echo $row['Campaign'];?>  </td>
            <td width="100" style="text-align:center;"><?php echo    $row['Checkdate'];?></td>
            <td style="text-align:center;"><?php echo $row['Hoursworked'];?></td>
            <td style="text-align:center;"><?php echo $row['Overtime'];?></td>
        </tr>

     <?php endwhile;?>

        </table>
        </form> 
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <script>
        $.datepicker.setDefaults({
        showOn: "button",
        buttonImage: "datepicker.png",
        buttonText: "Date Picker",
        buttonImageOnly: true,
        dateFormat: 'yy-mm-dd'  
    });
        $(function() {
        $("#post_at").datepicker();
        $("#post_at_to_date").datepicker();
    });
    </script>


   </body>
  </html>

2 个答案:

答案 0 :(得分:1)

加入查询并保留一个,例如:

  if(isset($_POST['post_at']) && isset($_POST['post_at_to_date']))
  {
    if(isset($_POST['go'])) {

      $cmbDept = $_POST['cmbDept'];
      $post_at = $_POST['post_at'];
      $post_at_to_date = $_POST['post_at_to_date'];
      $query = "SELECT * FROM daily_data2 WHERE Campaign LIKE '".$cmbDept."' " AND Checkdate between '" . $post_at . "' and '" . $post_at_to_date . "'";

    } else {
      $query = "SELECT * FROM daily_data2 WHERE Checkdate between '" . $post_at . "' and '" . $post_at_to_date . "'";
    }

  } else {

     if(isset($_POST['go'])) {
        $cmbDept = $_POST['cmbDept'];
        $query = "SELECT * FROM daily_data2 WHERE Campaign LIKE '".$cmbDept."'";
     } else {
        $query = "SELECT * FROM daily_data2";
     }
  }

  $search_result = filter($query);

  function filter($query)
  {
     $connect = mysqli_connect("localhost", "root", "","bio_db");
     $filter_Result = mysqli_query($connect, $query);
     return $filter_Result;
  }    

答案 1 :(得分:0)

感谢你们,我终于明白了,我只是将我的2个查询合并为一个,这里是我想出了我的查询。希望它有所帮助

 if(isset($_POST['post_at']) && isset($_POST['post_at_to_date']) && isset($_POST['cmbDept']))
    {
        $query ="SELECT * FROM daily_data2 WHERE Campaign = '".$cmbDept."' and Checkdate between '{'" . $post_at . "'}' and '{'" . $post_at_to_date . "'}'";
    }