[請益] 顯示排班表

看板PHP作者 (我 天蠍)時間11年前 (2014/06/15 10:22), 11年前編輯推噓5(5011)
留言16則, 9人參與, 最新討論串1/1
排班表依日期只顯示星期一到日 分成早上、下午、晚上、大夜(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

06/15 11:16, , 1F
84很少,除非你是弄84*connection那就有點多
06/15 11:16, 1F

06/15 11:23, , 2F
搞到84次也太誇張,活用group by可以減少次數
06/15 11:23, 2F

06/15 13:38, , 3F
是只有1個connection。可以請moon大說詳細一點嗎?
06/15 13:38, 3F

06/15 18:17, , 4F
你可以一次查出來放陣列去對照,就不用一個日期一個班別
06/15 18:17, 4F

06/15 18:17, , 5F
這樣跑sql
06/15 18:17, 5F

06/15 19:45, , 6F
自己講得模模糊糊要詳細,你table交出來先
06/15 19:45, 6F

06/15 20:59, , 7F
MOON大跟chen大的方法都可以減少SELECT的次數
06/15 20:59, 7F

06/15 21:48, , 8F
有考慮過用json的存法嗎? 一天只要一筆,不過查詢就麻煩
06/15 21:48, 8F

06/15 23:28, , 9F
二維array存全部人的班表,要不肥就只存一天
06/15 23:28, 9F

06/15 23:30, , 10F
最後serialize進db 真要快就用no-sql來處理資料
06/15 23:30, 10F

06/16 00:45, , 11F
MOON大,不好意思,我不是很清楚你的意思,我以為文中的
06/16 00:45, 11F

06/16 00:46, , 12F
班表已經提供足夠的資訊了,請問我還需要提供些什麼?
06/16 00:46, 12F
//程式示意碼如下 <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

06/16 00:59, , 13F
感謝chen大,我會試看看array的方式。
06/16 00:59, 13F

06/16 09:14, , 14F
他是需要你提供資料表吧@@ 不然怎麼知道你是怎麼存在裡
06/16 09:14, 14F

06/16 12:45, , 15F
阿你workdate, worktime, location一起GROUP BY不就結了
06/16 12:45, 15F

06/16 14:38, , 16F
page cache
06/16 14:38, 16F
文章代碼(AID): #1JdGDXzw (PHP)
文章代碼(AID): #1JdGDXzw (PHP)