У меня есть таблица с именем end_users.Я показываю количество зарегистрированных пользователей за месяц текущего года.Я получаю данные из базы данных и показываю данные с января по декабрь текущего года в форме гистограммы.Например, текущий год - 2019, поэтому на столбчатой диаграмме будет показано, сколько пользователей зарегистрировалось в каждом месяце 2019 года.
Что я хочу сделать, так это показать данные за прошлый год, основанные на данных, введенных пользователями за год, а не только текущиегод.Идея состоит в том, что пользователь выберет год из выпадающего списка и передаст этот год в запросе sql.
Моя модель
public function registered_user_graph(){
//This query fetch number of registered users from jan to dec of current year
$query = $this->db->query('SELECT (DATE_FORMAT(created_at,"%M")) AS "Month", COUNT(*) AS Number_of_registered_users FROM end_users WHERE year(created_at)= year(CURRENT_DATE) GROUP BY (DATE_FORMAT(created_at,"%M")) ORDER BY "Month" ASC');
if($query->num_rows() > 0){
return $query->result_array();
}else
return false;
}
Мой взгляд
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<?php
$userPoints = array();
foreach ($userschart as $key => $value) {
$userPoints[$key]['label'] = $value['Month'];
$userPoints[$key]['y'] = $value['Number_of_registered_users'];
}
?>
<script type="text/javascript">
//for chart and graph
window.onload = function () {
//Chart of monthly registered user data
var charts = new CanvasJS.Chart("user_container", {
animationEnabled: true,
exportEnabled: true,
theme: "light1", // "light1", "light2", "dark1", "dark2"
title:{
text: "Monthly registered Users"
},
data: [{
type: "column", //change type to bar, line, area, pie, etc
//indexLabel: "{y}", //Shows y value on all Data Points
indexLabelFontColor: "#5A5757",
indexLabelPlacement: "outside",
dataPoints: <?php echo json_encode($userPoints, JSON_NUMERIC_CHECK); ?>
}]
});
chart.render();
charts.render();
}
</script>
Iне думаю, что контроллер нужен, но на всякий случай вот мой контроллер
//Looping monthly registered users data got from model
$userschart = $this->dashboard_model->registered_user_graph();
$monthlyusers = array();
foreach($userschart as $row){
$monthlyusers[] = $row;
}
$this->data['userschart'] = $monthlyusers;
$this->template->admin_render('admin/dashboard/index',$this->data);
Помогите, ребята, пожалуйста?