有一个数据表,有如下几列
shop_id 门店编号
saledate 销售日期
trans_amt 销售金额
数据举例如下:
1 2015-06-01 3000
2 2015-06-01 5000
3 2015-06-01 6000
1 2015-06-02 3500
2 2015-06-02 5100
3 2015-06-02 6300
...
数据是每天每店一条记录,不重复
此表中的数据显示为如下的一个表格
shop_id | 2015-06-01 | 2015-06-02 | ... |
---|---|---|---|
1 | 3000 | 3500 | ... |
2 | 5000 | 5100 | ... |
3 | 6000 | 6300 | ... |
... | ... | ... | ... |
能想到的笨办法就是把数据取出来,循环加条件判断然后输出成表格,各位有没有好的解决方案或者思路可以高效的构建类似的表格?
这个太容易了呀,Codeigniter 自带的 table_helper 就可以实现啊,或者直接遍历 tr 就行了。
$table = [];
foreach($result AS $k=>$v) {
array_push(sprintf('<tr><td>%s</td><td>%s</td><td>%s</td></tr>',
$v->shop_id, $v->saledate, $v->trans_amt, // ...
));
}
$echo '<table>'.implode('', $table).'</table>';
表格只用一次,就用你现在的这个方法,要是多次使用,建议封装
你的实现方法是可行的,只是代码看起来可能没这么优雅。
建议你可以选用一些PHP框架,主流的框架基本都实现了html模版功能,推荐使用Laravel
http://laravel.com语法很优雅!并且官方已经推出LTS版本。(长期支持 - long-time support)
使用Mysql的Limit进行分页显示啊
请问楼主:如果2015-06-01 shop_id 为2的有两条,你的表格怎么显示?
如果数据多了呢?有没有limit?
为什么不弄一张临时表,每天生成一条表格中数据~
与html表格的数据结构完全一致~
这样直接一条select搞定~循环也不用加条件,也好维护,即使以后表格需求变了。
大不了临时表废弃就好了~