歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 23, 2024, 04:07:24 下午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  使用與操作  |  Summary「最近發表的文章」會重複 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: Summary「最近發表的文章」會重複  (閱讀 11402 次)
bibicall
版主
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 於: 五月 31, 2005, 03:29:05 下午 »

請問有人跟我一樣嗎?
發表文章時如果選了兩個不同的文章分類
在Summary「最近發表的文章」裡
那篇文章就會出現兩次 挑眉質疑
將文章的分類修改成1個
Summary就只顯示一篇
這樣算是bug嗎?

我的Summary有改過

summarystats.class.php修改部分
程式碼:
function getRecentArticles( $maxPosts )
{  
    ........
    while( ($row = $result->FetchRow()) && ($i < $maxPosts) ) {
         //if (!in_array($row["blog_id"], $blogs))
         //{
         //     $blogs[] = $row["blog_id"];
               array_push( $posts, $articles->_fillArticleInformation($row) );
         //      $i++;
         //}
    }
    return $posts;
}


還有Mark前輩說的部分
引用自: markwu
如果你真的只要最後 15 篇,從改 SQL 著手是最快的吧,你看一下 getRecentArticles() 中的 SQL,

1. 把 AND TO_DAYS(NOW()) - TO_DAYS(a.date) < 7 拿掉。因為他只 query 最近 7 天內的文章。但是,注意喔,當你文章很多,這個可是會花很久時間的。
2. 把 $query .= " GROUP BY a.id HAVING COUNT(a.blog_id) = 1 ORDER BY a.date DESC LIMIT 0, $maxPosts"; 改為  $query .= " ORDER BY a.date DESC LIMIT 0, $maxPosts";  讓他不需再 by blogid 來作 group
3. 照 lss 說的把那一段拿掉。

應該就可以了!這是我用目測的,還沒試過,你可能要自己試試看。

另外,記得清 /tmp 下的 cache,因為你改完程式後,pLog 不知你改了,所以不會幫你清 cache。

Mark
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 五月 31, 2005, 03:43:11 下午 »

把上面我寫的那一段 query 改為

程式碼:
$query .= " GROUP BY a.id ORDER BY a.date DESC LIMIT 0, $maxPosts";


竟然沒發現我竟然把 a.id 也拿掉了,真是的。 sorry.

Mark
已記錄

3gboke
初級會員
**
文章: 81


檢視個人資料
« 回覆文章 #2 於: 一月 24, 2006, 05:43:01 上午 »

 疑惑 实在不好意思翻老贴出来..
 
请问

1. 把 AND TO_DAYS(NOW()) - TO_DAYS(a.date) < 7 拿掉。因為他只 query 最近 7 天內的文章。但是,注意喔,當你文章很多,這個可是會花很久時間的。

这一段是在class/summary/dao/summarystats.class.php  里面的么?   getRecentArticles()  (行260-行309)   下好象没有此段内容 .  我用的是1.03

按照上面的方法 我已经修改了第2条  和 lss 老师的方法.. 可就没找到第1条的内容   嚎啕大哭
« 最後編輯時間: 一月 24, 2006, 05:45:35 上午 由 3gboke » 已記錄

偶不懂PHP程式,对LT的修改仅限于其模板的修改
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 一月 24, 2006, 11:59:39 上午 »

到 1.0.3 已經改了方法

程式碼:
WHERE a.date >= ".$this->_sevenDaysAgo." AND a.date <= ".$this->_now."

Mark
已記錄

3gboke
初級會員
**
文章: 81


檢視個人資料
« 回覆文章 #4 於: 一月 24, 2006, 03:39:07 下午 »

 吐舌頭  3Q
 
改成  WHERE a.date <= ".$this->_now."         就OK拉.
已記錄

偶不懂PHP程式,对LT的修改仅限于其模板的修改
頁: [1]
LifeType 中文開發論壇  |  支援  |  使用與操作  |  Summary「最近發表的文章」會重複 « 上篇主題 下篇主題 »
    前往: