看板 PHP 關於我們 聯絡資訊
排班表依日期只顯示星期一到日 分成早上、下午、晚上、大夜(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://www.ptt.cc/bbs/PHP/M.1402798945.A.F7A.html
up9cloud:84很少,除非你是弄84*connection那就有點多 06/15 11:16
MOONRAKER:搞到84次也太誇張,活用group by可以減少次數 06/15 11:23
jscorpio1:是只有1個connection。可以請moon大說詳細一點嗎? 06/15 13:38
chenstin:你可以一次查出來放陣列去對照,就不用一個日期一個班別 06/15 18:17
chenstin:這樣跑sql 06/15 18:17
MOONRAKER:自己講得模模糊糊要詳細,你table交出來先 06/15 19:45
jhunkyoiori:MOON大跟chen大的方法都可以減少SELECT的次數 06/15 20:59
j87b0003:有考慮過用json的存法嗎? 一天只要一筆,不過查詢就麻煩 06/15 21:48
dlikeayu:二維array存全部人的班表,要不肥就只存一天 06/15 23:28
dlikeayu:最後serialize進db 真要快就用no-sql來處理資料 06/15 23:30
jscorpio1:MOON大,不好意思,我不是很清楚你的意思,我以為文中的 06/16 00:45
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
jscorpio1:感謝chen大,我會試看看array的方式。 06/16 00:59
crossdunk:他是需要你提供資料表吧@@ 不然怎麼知道你是怎麼存在裡 06/16 09:14
MOONRAKER:阿你workdate, worktime, location一起GROUP BY不就結了 06/16 12:45
alog:page cache 06/16 14:38