我猜你們肯定都碰到過以下的情況
我有兩個表,magazine(雜誌資訊)和subscibe(訂閱資訊),在subscibe表內我有一個magazine_id來和magazine表內的編號關聯
現在我要做一個瀏覽訂閱資訊的列表,這個列表內有一列是顯示雜誌名稱的(magazine表的name欄位),有一種辦法是使用join在這兩個表之間做一個關聯,把magazine_id都替換成為name,但是這個列表是一個搜尋結果,sql查詢語句是拼接而成的,假如再加上join,拼接sql的邏輯會變得有點複雜,所以還是簡單的弄一個select * from subscibe where ....,然後把結果集內的magazine_id拿來查詢會比較簡單一點,這又出現另外的問題就是我不想在我的程式裡出現過多的重複查詢,比如結果集內有10條資料都是關於同一個magazine_id,我就會多出9條重複的查詢,於是我決定這樣幹
function MagazineInfoById($magazine_id){
global $db;
static $magazine_info;
if (!isset($magazine_info[$magazine_id])){
$magazine_info[$magazine_id] = $db->getRow('select * from magazine where id = '. $magazine_id);
}
return $magazine_info[$magazine_id];
}
while (....){
$magazine_info = MagazineInfoById($magazine_id);
.....
}
MagazineInfoById()內的靜態變數$magazine_info就成為了一個緩衝形式的東西,在某些情況下,可以大大的降低查詢的次數,避免重複的查詢
http://www.bkjia.com/PHPjc/445105.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445105.htmlTechArticle我猜你們肯定都碰到過以下的情況 我有兩個表,magazine(雜誌資訊)和subscibe(訂閱資訊),在subscibe表內我有一個magazine_id來和magazine表內...