看板 PHP 關於我們 聯絡資訊
<?php $pd = array(); function kindname($pd_no) { global $pd; $pd_no = (int)$pd_no; // 確保傳進來的是整數 if(!isset($pd[$pd_no])) { $result = mysql_fetch_array(mysql_query( "SELECT `pd_name` FROM `product_information` " . "WHERE `pd_no` = $pd_no" )); $pd[$pd_no] = $result['pd_name']; } return $pd[$pd_no]; } ※ 引述《eiping (一平兄)》之銘言: : 各位高手大家好,小弟遇到的問題如下。 : 資料庫類似如下 : 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'); : ?> : 這樣寫是不是有邏輯的問題?怎麼想都想不出來要怎麼做,還請賜教,感恩!! -- ` ◥◣◢◣◢◣ ◢▏。 ○ ο ° ██◤ █◤◥◤█ o ° ◤ ◥ █ █ ˍ ◤◤ ◢◤ ◢◤██◣ ◢ ◢◤ ◤ingsay ◢███ ζ ) ) mt.rmstudio.tw [email protected] ◤◤ wnqui -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.74.8 X ※ 編輯: a60301 來自: 114.34.74.8 (05/22 09:18)
MOONRAKER:好黑啊 停電了嗎 05/22 09:18
a60301:稍微加亮了 05/22 09:19
MOONRAKER:感謝 05/22 10:35
PsMonkey:有 data sync 的問題吧? Orz 05/22 10:42
a60301:這個頁面應該執行時間不會太久,下次跑就會重新取得 05/22 10:51
PsMonkey:喔喔... 拍謝... 我都忘記有這哏了 Orz 05/22 10:54
※ 編輯: a60301 來自: 114.34.74.8 (05/22 12:17)
eiping:好感恩。。。基本功都不會,看了才知道全域變數可以先宣告 05/23 02:29