簡體   English   中英

使用MySQL數據庫的PHP中的日期范圍報告

[英]Date range report in PHP using MySQL Database

我正在嘗試實現與此問題鏈接相似的功能。 我需要使用日期范圍內數據庫中的多個變量來生成PHP報告。

這是我到目前為止的內容:

這是我的JavaScript:

<script type="text/javascript">
      $(function(){
        $("#date_range").submit(function(){
          $.ajax({
            type:"POST",
            url:".weekly_concession.php?" + new Date().getTime(),
            dataType:"text",
            data:$(this).serialize(),
            beforeSend:function(){
              $("#loading").show();
            },
            success:function(response){
                $("#report_result").append(response);
                $("#loading").hide();
            } 
          })
          return false;
        });
    });
    </script>

我的數據范圍表格

<div align="center">
<form name="date_range" id="date_range" method="post" style="width: 454px" >
<fieldset>
<legend>Start Date : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="start" id="datepicker"/>
<legend>End Date : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="end" id="datepicker2"/>
<button class="btn btn-inverse" type="submit" name="click" >
<i class="icon icon-print icon-white"></i> 
Run Report</button>
</fieldset>
</form></div>
<br><br>

我的結果表

<div align="center">
  <table id="date_range" width="100%" cellspacing="0" cellpadding="10">
    <tr>
      <td align="center"><table width="300" cellpadding="4" cellspacing="0" class="product_box">
        <tr>
          <td align="center" bgcolor="#EAF0FF" class="column-light">&nbsp;</td>
          <td align="center" bgcolor="#EAF0FF" class="column-light"><strong> Sales: </strong></td>
          <td align="center" bgcolor="#EAF0FF" class="column-light"><strong>Sale Price Total:</strong></td>
          <td align="center" bgcolor="#EAF0FF" class="column-light"><strong>Cost Price Total:</strong></td>
          <td align="center" bgcolor="#EAF0FF" class="column-light"><strong>Margin:</strong></td>
              </tr>
        <tr>
      <td align="center" class="column-light"><img src="images/spacer.png" width="140" height="1" /></td>
          <td align="center" class="column-light"><img src="images/spacer.png" width="110" height="1" /></td>
          <td align="center" class="column-light"><img src="images/spacer.png" width="110" height="1" /></td>
          <td align="center" class="column-light"><img src="images/spacer.png" width="110" height="1" /></td>
          <td align="center" class="column-light"><img src="images/spacer.png" width="110" height="1" /></td>
           </tr>
        <tr>
          <td align="center" bgcolor="#F5F5F5" class="column-light"><strong>Bawtry</strong></td>
          <td align="center" bgcolor="#F5F5F5" class="column-light"><strong>

許多SELECT語句之一:

$sql="SELECT * FROM shop_orders WHERE 
shop_order_day AND shop_order_month AND shop_order_year BETWEEN 'start' and 'end' AND shop_order_action = 'Sale' AND shop_order_location = 'Bawtry' AND shop_order_field_to_update LIKE '%con%' ORDER BY shop_order_id DESC ";

$result=mysql_query($sql);
$bawtry_sales = mysql_num_rows($result);
echo $bawtry_sales ?>
          </strong></td>
          <td align="center" bgcolor="#F5F5F5" class="column-light"><?php

...

我在執行此工作時遇到問題,因此我可以使用以上表格(即2014-03-09-2014-03-16)中選擇的日期在shop_order_day,shop_order_month和shop_order_year之間選擇查詢結果。

所以我的問題是,我需要更改什么以使SELECT語句正確或Javascript功能正常?

任何幫助都將是非常有用的-對不起,如果有點麻煩。

您將需要此查詢。

 SELECT * 
  FROM shop_orders 
 WHERE DATE(CONCAT(shop_order_year,'-',shop_order_month,'-',shop_order_day))
       BETWEEN 'start' and 'end' 
   AND /* the other stuff in your query */

但是您應該知道,這在搜索方面效率很低。 您最好使用DATE類型的shop_order_date列,上面帶有一個索引以及以下查詢模式:

 SELECT * 
  FROM shop_orders 
 WHERE shop_order_date BETWEEN 'start' and 'end' 
   AND /* the other stuff in your query */

從您的SQL語句的外觀來看,我想說的問題是您要使用的SQL關鍵字和表結構的組合。 不要考慮使用單獨的日期,月份和年份列,而應考慮使用單個datetime列類型。 這樣,您將能夠使用對日期和時間值進行操作的標准SQL函數。

也。 最好將BETWEEN用於數字數據類型。 因此,您可以將日期轉換為時間戳記...但是為什么使事情復雜化?

將$ start和$ end設置為ISO標准日期-YYYY-MM-DD。 然后:

SELECT * FROM shop_orders WHERE shop_order_date> ='$ start'AND shop_order_date <='$ end'AND ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM