看板 PHP 關於我們 聯絡資訊
各位高手大家好,小弟遇到的問題如下。 資料庫類似如下 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
alpe:$pd 的變數域 05/21 15:04
MOONRAKER:那你還要資料庫幹嘛…統統湊到一個txt檔裡讀進來就好了 05/21 15:11
MOONRAKER:不用把資料庫想得太笨,除非profile指出問題在資料庫 05/21 15:12
eiping:所以意思是說,就算一頁存取一百次重複的資料也沒關係嗎? 05/21 15:23
eiping:我是覺得這樣好像影響我程式效能才想放在陣列存取 05/21 15:24
tyf99:數量不多的話,你乾脆直接存 cookie,設半天過期 05/21 15:24
MOONRAKER:你真的很想的話,可以把一百個湊成一個query 05/21 15:44
MOONRAKER:query一次,得到一個一百項的陣列 05/21 15:45
rocairforce:全部撈出來array('no' => name) 醬? 05/21 17:02
MOONRAKER:是底 前提是一開始就知道是哪一百個 05/21 17:38
MOONRAKER:不然就是取出後存在陣列 下次看陣列沒有才再從db讀取 05/21 17:40