使用HTML daterange表单数据在MySQL查询中选择日期范围

时间:2013-06-26 15:24:38

标签: php html mysql ajax datepicker

感谢您查看此问题。我已经实现了一个jquery / html datepicker表单,允许用户选择开始日期和结束日期。此表单的HTML是:

        <form id="MyForm">
            <input type="text" class = "datepicker" name = "StartDate" id="StartDate" placeholder = "Start Date" style = "width : 85px; margin-left: 10px; margin-top: 1mm;"/>
            <br />
            <input type="text" class = "datepicker" name = "EndDate" id="EndDate" placeholder = "End Date" style = "width : 85px; margin-left: 10px;"/>
            <br />
            <input type = "submit" name = "submit" value = "Go" style = "font-weight: bold; margin-left: 10px;"/>
        </form>

jquery非常简单,并且输入日期的格式与我查询的MySQL表中日期的格式相同。

我想在此网页中创建一个系统,允许用户动态更改按所选日期范围显示的结果。理想情况下,我想使用AJAX以动态方式执行此操作。请记住,此页面已经收到了一个单独字段(项目)标识的请求。我的意思是页面的URL将类似于~~~~ .php?project = LOW003,其中LOW003是会话变量$ project。日期范围表单应将下面的查询更改为根据输入的日期范围选择的查询:

      SELECT project, participant, reel, machine, qc_gsr, qc_hr, qc_acz, qc_bre 
          FROM rtcdb.session 
          WHERE site = 'ORL001';

我想基于日期范围表单输入将此查询转换为:

     SELECT project, participant, reel, machine, qc_gsr, qc_hr, qc_acz, qc_bre 
         FROM rtcdb.session 
         WHERE download_date >= '$start_date' 
         AND download_date <= '$end_date';

总而言之,我想使用AJAX和PHP从以yy-mm-dd格式存储的HTML表单中获取输入变量,然后根据日期范围更改我的所有MySQL查询。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我正在构建一个SQL,供折旧的mysql_ *函数使用,仅显示含义:

$where=array();
if( (isset($_REQUEST['site'])) && (!empty($_REQUEST['site'])) )
{
    $where[]="site='".mysql_real_escape_string(urldecode($_REQUEST['site']))."'";
}
if( (isset($_REQUEST['start_date'])) && (!empty($_REQUEST['start_date'])) )
{
    $where[]="download_date>='".mysql_real_escape_string(urldecode($_REQUEST['start_date']))."'";
}
if( (isset($_REQUEST['end_date'])) && (!empty($_REQUEST['end_date'])) )
{
    $where[]="download_date<='".mysql_real_escape_string(urldecode($_REQUEST['end_date']))."'";
}

$sql="SELECT project, participant, reel, machine, qc_gsr, qc_hr, qc_acz, qc_bre 
FROM rtcdb.session";
if(sizeof($where)>0)
{
    $sql.=" WHERE ".implode(" AND ", $where);
}

echo $sql;

你也可以准备这份声明,但我这样解释的速度更快。
没有根据评论进行验证