query($queryTop5); // 執行查詢 if (PEAR::isError($res)) die('查詢發生錯誤:' . $res->getMessage()); $top5 = $res->fetchAll(); // 取得前 5 名書籤的資料 if (PEAR::isError($top5)) die('存取資料失敗:' . $top5->getMessage()); // 依 GET 參數, 設定查詢書籤的查詢敘述 if(isset($_GET['tag'])) { // 若有設定標籤, 則查含指定標籤的書籤 if(get_magic_quotes_gpc()) $_GET['tag'] = stripslashes($_GET['tag']); $query = 'SELECT * FROM bookmark WHERE bookmark.bid IN' . ' (SELECT bid FROM tag WHERE name=' . // 使用子查詢 $mdb2->quote($_GET['tag'], 'text') . ') ORDER BY click DESC'; $msg= htmlspecialchars($_GET['tag']) . ' 類的書籤'; } elseif($_GET['top']==true) { // 查點閱次數前 100 名的書籤 $query = 'SELECT * FROM bookmark ORDER BY click DESC LIMIT 0,100'; $msg= '最熱門的100個書籤'; } else { $query = 'SELECT * FROM bookmark'; $msg= '全部書籤'; } $res =& $mdb2->query($query); // 執行查詢 if (PEAR::isError($res)) die('查詢發生錯誤:' . $res->getMessage()); $rows = $res->fetchAll(); if (PEAR::isError($rows)) die('存取資料失敗:' . $rows->getMessage()); $params = array( // 分頁參數 'mode' => 'Jumping', 'perPage' => 10, 'itemData' => $rows); $pager = & Pager::factory($params); // 建立分頁 $links = $pager->getLinks(); // 取得分頁連結標籤字串 $data = $pager->getPageData($_GET[pageID]); // 取得目前頁面資料 // 為目前分頁中的書籤加上 tag 資料 foreach($data as & $bookmark) { $tagQuery = 'SELECT name FROM tag WHERE bid=' . $bookmark['bid']; $tagRes =& $mdb2->query($tagQuery); // 執行查詢 if (PEAR::isError($tagRes)) die('查詢發生錯誤:' . $tagRes->getMessage()); // 將標籤陣列附於書籤資料後 $bookmark['tags'] = $tagRes->fetchCol('name'); if (PEAR::isError($bookmark['tags'])) die('存取資料失敗:' . $rows->getMessage()); } $smarty = new Ch13Smarty(); $smarty->assign('msg',$msg); // 設定目前瀏覽項目的訊息 $smarty->assign('top5',$top5); // 設定前5名的資料 $smarty->assign('data',$data); // 設定目前頁面資料 $smarty->assign('link',$links['all']); // 設定分頁連結標籤字串 $smarty->display('Ch13-08.tpl'); ?>