[請益] 自定函數與陣列的改善

看板PHP作者 (一平兄)時間12年前 (2013/05/21 14:43), 編輯推噓0(0011)
留言11則, 5人參與, 最新討論串1/5 (看更多)
各位高手大家好,小弟遇到的問題如下。 資料庫類似如下 no name 1 陳 2 黃 3 張 原本我寫了一個自訂函式,只要把no數字帶入,就能查到姓氏。 如 echo name(1); 就會印出 陳 但這樣產生一個問題,如果該頁用了100次這個函數,那就會存取資料庫100次 所以我想要先把資料庫內的資料讀取一次,存入陣列內,之後函數就不用再存取資料庫 程式如下 <? $mysql="SELECT pd_no,pd_name FROM product_information"; $result = mysql_query("$mysql"); while($row = mysql_fetch_array($result)) { $pd[$row[pd_no]]=$row[pd_name]; } function kindname($pdno) { return $pd[$pd_no]; }; echo kindname('1'); ?> 這樣寫是不是有邏輯的問題?怎麼想都想不出來要怎麼做,還請賜教,感恩!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.51.149

05/21 15:04, , 1F
$pd 的變數域
05/21 15:04, 1F

05/21 15:11, , 2F
那你還要資料庫幹嘛…統統湊到一個txt檔裡讀進來就好了
05/21 15:11, 2F

05/21 15:12, , 3F
不用把資料庫想得太笨,除非profile指出問題在資料庫
05/21 15:12, 3F

05/21 15:23, , 4F
所以意思是說,就算一頁存取一百次重複的資料也沒關係嗎?
05/21 15:23, 4F

05/21 15:24, , 5F
我是覺得這樣好像影響我程式效能才想放在陣列存取
05/21 15:24, 5F

05/21 15:24, , 6F
數量不多的話,你乾脆直接存 cookie,設半天過期
05/21 15:24, 6F

05/21 15:44, , 7F
你真的很想的話,可以把一百個湊成一個query
05/21 15:44, 7F

05/21 15:45, , 8F
query一次,得到一個一百項的陣列
05/21 15:45, 8F

05/21 17:02, , 9F
全部撈出來array('no' => name) 醬?
05/21 17:02, 9F

05/21 17:38, , 10F
是底 前提是一開始就知道是哪一百個
05/21 17:38, 10F

05/21 17:40, , 11F
不然就是取出後存在陣列 下次看陣列沒有才再從db讀取
05/21 17:40, 11F
文章代碼(AID): #1HcnU4RH (PHP)
文章代碼(AID): #1HcnU4RH (PHP)