PHP - 如何根据日期范围输入显示结果

时间:2015-11-29 09:25:21

标签: php jquery mysql date datetime

我有下表显示项目名称,签入和签出项目的日期时间及其数量。从数据库中检索结果(这些值仅作为示例)。

Item |      CheckIn       |      Checkout      | Quantity
-----|--------------------|--------------------|----------
  A  | 10-10-2015 10:40:46|                    |    20
  A  |                    | 10-10-2015 16:17:35|    7
  B  | 10-10-2015 16:35:15|                    |    25
  A  | 12-10-2015 11:13:49|                    |    5
  B  |                    | 13-10-2015 11:20:25|    10
  B  | 14-10-2015 10:38:04|                    |    3
  A  | 14-10-2015 13:00:04|                    |    30

我在其他页面中有第二个表格,我想显示项目名称,日期和总数量。我想要做的是根据用户输入的日期范围在第二个表格中显示结果。除此之外,我想根据入住和退房流程自动计算数量。例如,如果项目签入,则项目的数量将累计到该项目的当前数量。如果项目结帐,则从该项目的当前数量中减去该项目的数量。

第二个表的预期结果应如下所示:

a)例如用户输入日期范围(2015年10月10日至2015年10月12日)

Item Name |      Date      | Total Quantity
----------|----------------|---------------
    A     |   10.10.2015   |       13
    B     |   10.10.2015   |       25
    A     |   12.10.2015   |       5

日期范围输入来自两个输入框(Date From和Date To),我使用Jquery datepicker。但是,当我提交日期范围时,什么也没有显示。问题是,数据库中有两个日期时间字段是checkIn和checkOut,我想根据用户输入的日期范围显示 DATE ,无论是否登记或出。目前,我提交任何日期范围时都没有显示结果。所以,我的问题是,如何根据日期范围输入显示结果并自动计算总数量。

这是我到目前为止所做的:

<script>
$(function() {
       $( "#from" ).datepicker({ dateFormat: 'yy-mm-dd' });
       $( "#to" ).datepicker({ dateFormat: 'yy-mm-dd' });
    });
</script>

<label>Date From : </label>
<input name="from" id="from" type="text" value="<?php if(isset($_GET['from'])) echo $_GET['from']; ?>" placeholder="Select Date"  required />
<label>Date To : </label>
<input name="to" id="to" type="text" value="<?php if(isset($_GET['to'])) echo $_GET['to']; ?>" placeholder="Select Date"  required />
<input type="submit" value="SUBMIT" />

<table>
     <tr>
    <td>ITEM NAME</td>
    <td>DATE</td>
    <td>QUANTITY</td>
    </tr>
<?php
if(isset($_GET['from'])){
    $from = $_GET['from'];
    $to = $_GET['to'];
    $result = mysql_query("SELECT * FROM itemloc WHERE DATE(itemLocCheckIn) >= " . $from . " AND DATE(itemLocCheckIn) <=  " . $to . " OR DATE(itemLocCheckOut) >= " . $from . " AND DATE(itemLocCheckOut) <=  " . $to . "");
}

else{
    $result = mysql_query("SELECT * FROM itemloc");
}

$totalqty=array();
while($row = mysql_fetch_array($result)){
    $date=date($row['itemLocCheckIn']);
    $item=$row['itemNm'];

    if(!isset($totalqty[$item]))
    {
    $totalqty[$item] = 0;
    }
    if(is_null($row['itemLocCheckOut'])){
        $totalqty[$item]+= $row['itemLocQty'];
    }
    else{
        $totalqty[$item]-= $row['itemLocQty'];
    }
}

foreach($totalqty as $k1=>$v1){
    ?>  
<tr>
    <td><?php echo $k1;?></td>
    <td><?php echo $date;?></td>
    <td><?php echo $v1;?></td>
</tr>
<?php
}
?>
</table>

0 个答案:

没有答案