我想在某些数据上使用图表,并根据所选日期生成值(使用日期选择器)。我已经窃取了网络上的大部分内容,可能只有一个简单的问题。
以下是Idiorm查询:
if (isset($_GET['start']) AND isset($_GET['end'])) {
$start = $_GET['start'];
$end = $_GET['end'];
$data = array();
// Select the results with Idiorm
$results = ORM::for_table('tbl_data')
->where_gte('date', $start)
->where_lte('date', $end)
->order_by_desc('date')
->find_array();
// Build a new array with the data
foreach ($results as $key => $value) {
$data[$key]['label'] = $value['date'];
$data[$key]['value'] = $value['rev'];
}
echo json_encode($data);
}
$start
和$end
来自我的日期选择器和yyyy-mm-dd
格式。我唯一不知道如何做的就是如何更改->where_gte
声明。您可以看到它正在查询字段date
的数据库。在我的数据库中,我有三个字段year
,month
和day
。
有没有办法将三个字段year
,month
和day
合并为一个表达式,即->where_gte('year'&'month'&'day', $start)
???
我尝试搜索和搜索,但可能错误的关键字或知识较少。
提前感谢您的帮助!
答案 0 :(得分:0)
您可以使用MySql DATE_FORMAT()
功能管理日期格式。 E. G。:
// Select the results with Idiorm
$results = ORM::for_table('tbl_data')
->where_gte('date', "DATE_FORMAT($start, '%Y-%m-%d')")
->where_lte('date', "DATE_FORMAT($end, '%Y-%m-%d')")
->order_by_desc('date')
->find_array();
答案 1 :(得分:0)
由于数据库中有三个字段,因此需要三个where_gte
子句:
...
->where_gte('year', substr($start, 0, 4) // or most suitable date_format
->where_gte('month', substr($start, 5, 2) // or most suitable date_format
...
希望它有所帮助。