作者eiping (一平兄)
看板PHP
標題[請益] 自定函數與陣列的改善
時間Tue May 21 14:43:13 2013
各位高手大家好,小弟遇到的問題如下。
資料庫類似如下
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