【问题标题】:How Can I give date dynamically using mysql date_format?如何使用 mysql date_format 动态给出日期?
【发布时间】:2017-08-07 12:56:18
【问题描述】:

我正在处理要求分别为每 7、15、30、50、75 或 100 天生成报告,其中用户通过选择下拉菜单选择他的选择。首先,我编写了查询以生成 7 天的报告,效果很好。但我不确定如何根据用户选择使选择动态化。

我对 7 天报告的查询如下:

SELECT table1.order_id FROM table2 LEFT JOIN table1 ON table1.order_id = table2.order_id  WHERE table1.assigned_user_id=:assigned_user_id AND DATE(table2.track_date) >= (DATE(NOW()) - INTERVAL 7 DAY) AND table2.order_status=2 GROUP BY table1.order_id

我的选择下拉菜单是:

<select name="supply_analysis" id="supply_analysis" class="supply_analysis">
            <option value="7" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='7')?'selected':''?>>7 days</option>
            <option value="15" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='15')?'selected':''?> >15 days</option>
            <option value="30" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='30')?'selected':''?> >30 days</option>
            <option value="50" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='50')?'selected':''?> >50 days</option>
            <option value="75" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='75')?'selected':''?> >75 days</option>
            <option value="100" <?php echo (isset($_GET['analysis']) && $_GET['analysis']=='100')?'selected':''?> >100 days</option>
 </select>

我根据用户选择生成报告的查询是:

"SELECT table1.order_id FROM table2 LEFT JOIN table1 ON table1.order_id = table2.order_id  WHERE table1.assigned_user_id=:assigned_user_id AND DATE(table2.track_date) >= (DATE(NOW()) - INTERVAL ".$_GET['analysis']." DAY) AND table2.order_status=2 GROUP BY table1.order_id"

目前,查询似乎可以正常工作,但我不确定它是否正常工作。请有任何建议/帮助?谢谢。

【问题讨论】:

  • 后端使用php吗?
  • 是的,我使用 php 作为后端,@Ali

标签: mysql sql date-format


【解决方案1】:

看看这个:

$values = [7 , 15 , 30 , 50 , 75 , 100];

if(in_array($values , $supply_analysis)) //use this to prevent SQL injection 
{
  $SQL = "SELECT table1.order_id 
          FROM table2 LEFT JOIN table1 ON table1.order_id = table2.order_id  
          WHERE table1.assigned_user_id=:assigned_user_id AND DATE(table2.track_date) >= (DATE(NOW()) - INTERVAL {$supply_analysis} DAY) AND table2.order_status=2 GROUP BY table1.order_id";

  //do your database query here

}

$supply_analysis 是从您的表单提交的值

【讨论】:

  • 谢谢,我会试试这个,但它似乎工作正常。我会再次与您联系。
猜你喜欢
  • 2014-03-09
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多