【发布时间】:2016-05-25 04:24:24
【问题描述】:
如何对我的数据进行排序以给出 5 星、4 星、直到 1 星的评分。
这是我的查询
function top5cust($tahun, $bulan)
{
if ($tahun == 'semua' && $bulan == 'semua'){
$data = $this->db->query("SELECT nama_jalan, no_rumah, jarak, kelurahan, kecamatan, kota, COUNT(*) as freq
from t_cust GROUP by nama_jalan, no_rumah, jarak,kelurahan, kecamatan, kota
ORDER by freq DESC LIMIT 5");
}
else
{
$data = $this->db->query("SELECT nama_jalan, no_rumah, jarak, kelurahan, kecamatan, kota, COUNT(*) as freq
from t_cust
WHERE YEAR(tgl_req) = $tahun AND MONTH(tgl_req) = $bulan
group by nama_jalan, no_rumah, jarak, jarak,kelurahan, kecamatan, kota
ORDER by freq DESC LIMIT 5");
}
return $data->result();
}
这是我的 php 代码
<table>
<thead>
<tr>
<th><center>Alamat</center></th>
<th><center>Jarak</center></th>
<th><center>Frekuensi</center></th>
<th><center>Rate</center></th>
</tr>
</thead>
<tbody>
<?php
$cost=2000;
$totalbeli=50000;
foreach($top5cust as $data){
$frekuensi=$data->freq;
$jaraks=$data->jarak;
$perhitunganrank=($frekuensi*$totalbeli)-($jaraks*$cost*$frekuensi);
echo "<tr>";
echo "<td>".$data->nama_jalan." no ".$data->no_rumah.", ".$data->kelurahan.", ".$data->kecamatan.", ".$data->kota." </td>";
echo "<td>".$data->jarak."</td>";
echo "<td>".$data->freq."</td>";
echo '<td>'.$perhitunganrank.'</td>';
echo"</tr>";
}?>
</tbody>
</table>
如何通过$perhitunganrank 对数据进行排序并给出速率但不回显它。
对不起,如果我的问题不清楚我的英语不好。
问候, 呸呸呸
【问题讨论】:
-
同时发布您的输入和预期输出
-
从数据库输入数据,输出为4列(alamat, jarak, frekuensi, and Rate)的表格。表中的数据按 $perhitunganrank Desc 排序的结果排序..
-
您的查询有问题。您需要考虑用户只选择年份而不选择月份的情况,反之亦然。否则查询将是
where month='semua',这将返回零结果或错误,具体取决于列的数据类型。
标签: php mysql codeigniter rank rate