作者jscorpio1 (我 天蠍)
看板PHP
标题[请益] 显示排班表
时间Sun Jun 15 10:22:22 2014
排班表依日期只显示星期一到日
分成早上、下午、晚上、大夜(6小时一班)
门口有东、西、南、北
大概如下
星期一(6/16) 星期二(6/17) 星期三(6/18) 星期四(6/19) 星期五(6/20) ....
东门:AAA
早 西门:BBB
上 南门:CCC
北门:DDD
下
午
晚
上
大
夜
我现在的做法是
以回圈方式显示架构,在每一个<td></td>之间,以日期及班表时间为条件进行SELECT
每检视一次班表,就要对资料库进行28次(4班*7天)的query
因为接下来有可能要改成2小时一班
这样的话,query次数就会变成84次(12班*7天)
使用者只要按一次refresh,就要84次的query
觉得这样的次数有点多,但想了很久,也没有想到比较好的解决方式
想请问大家,有没有其他比较好的做法呢?
还是说84次,对资料库而言,是一块小蛋糕??
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.40.109.162
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1402798945.A.F7A.html
1F:→ up9cloud:84很少,除非你是弄84*connection那就有点多 06/15 11:16
2F:→ MOONRAKER:搞到84次也太夸张,活用group by可以减少次数 06/15 11:23
3F:→ jscorpio1:是只有1个connection。可以请moon大说详细一点吗? 06/15 13:38
4F:推 chenstin:你可以一次查出来放阵列去对照,就不用一个日期一个班别 06/15 18:17
5F:→ chenstin:这样跑sql 06/15 18:17
6F:→ MOONRAKER:自己讲得模模糊糊要详细,你table交出来先 06/15 19:45
7F:推 jhunkyoiori:MOON大跟chen大的方法都可以减少SELECT的次数 06/15 20:59
8F:推 j87b0003:有考虑过用json的存法吗? 一天只要一笔,不过查询就麻烦 06/15 21:48
9F:→ dlikeayu:二维array存全部人的班表,要不肥就只存一天 06/15 23:28
10F:→ dlikeayu:最後serialize进db 真要快就用no-sql来处理资料 06/15 23:30
11F:→ jscorpio1:MOON大,不好意思,我不是很清楚你的意思,我以为文中的 06/16 00:45
12F:→ jscorpio1:班表已经提供足够的资讯了,请问我还需要提供些什麽? 06/16 00:46
//程式示意码如下
<table>
<?php
日期 for loop{ //$i
工作时间 for loop{ //$j
1.display 日期及星期
2.sql query
SELECT location, worker FROM duty WHERE workdate='$i'AND worktime='$j';
3.echo query result
}
}
?>
//table scheme
workno, workdate, worktime, location, worker
※ 编辑: jscorpio1 (59.126.61.44), 06/16/2014 00:58:23
13F:→ jscorpio1:感谢chen大,我会试看看array的方式。 06/16 00:59
14F:推 crossdunk:他是需要你提供资料表吧@@ 不然怎麽知道你是怎麽存在里 06/16 09:14
15F:→ MOONRAKER:阿你workdate, worktime, location一起GROUP BY不就结了 06/16 12:45
16F:推 alog:page cache 06/16 14:38