【发布时间】:2022-01-22 01:59:57
【问题描述】:
我正在为一个项目使用 CodeIgniter 3,并在控制器中编写了以下函数以将一些数据传递给视图。它查询数据库中的表以获取血型作为标签,并获取“isAvailable = 1”的每种血型的行数。然后将这些数据传递到视图中以呈现图表。但正如你所看到的,这些计数是错误的。即使“isAvailable = 0”,它也会计算行数。我的代码有什么问题,我该如何解决?
控制器中的功能。
public function bloodTypesChart()
{
$chartData = [];
$blood_types = $this->db->query("SELECT (BloodType) as blood_type FROM packets WHERE (isAvailable) = '1' GROUP BY blood_type")->result_array();
foreach($blood_types as $bt)
{
$record = $this->db->query("SELECT COUNT(PacketID) as count FROM packets WHERE BloodType = '{$bt['blood_type']}'")->result_array();
foreach($record as $row) {
$chartData['label'][] = $bt['blood_type'];
$chartData['data'][] = $row['count'];
}
}
$chartData['chart_data'] = json_encode($chartData);
$this->load->view('insight',$chartData);
}
查看
<script>
new Chart(document.getElementById("bar-chart"), {
type: 'bar',
data: {
labels: <?= json_encode($label)?>,
datasets: [
{
label: "Donations",
backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"],
data: <?= json_encode($data)?>
}
]
},
options: {
legend: { display: false },
title: {
display: true,
text: 'Donations'
}
}
});
</script>
【问题讨论】:
标签: php mysql codeigniter codeigniter-3