CMS模塊內容設計分為主表和附表
主表:存儲的字段用于列表循環和搜索
附表:存儲的字段用于內容頁顯示(原則上不能出現在列表顯示)
設計附表是為了減輕主表的查詢壓力,把一些不常用于列表的字段放在附表中,如果非要把附表字段用在列表循環里面,就違背了附表的設計理念,這樣想法是不效率的,非要做的話有兩種解決方法:
例如news模塊的附表的content字段,我想在列表顯示
方法一、通過PHPmyadmin工具手動把content改為主表(需要有數據庫基礎,沒有技術基礎請看下面的方法)
操作數據庫需要提前備份數據,以免數據丟失不可逆轉。
1、進入cms自定義字段里面,找到content字段的id號
2、dr_field表,通過content的id編號,找到content字段的數據
把0改成1
3、進入模塊主表的數據表dr_1_xxxx,新建一個content字段
4、然后進入模塊附表數據dr_1_xxxx_data_0,將附表的數據復制到主表的content字段中:
UPDATE `dr_1_xxxx` a, `dr_1_xxxx_data_0` b SET b.`content` = a.`content` WHERE a.id = b.id;
如果有多個附表就執行多次后綴_1,_數字
5、然后再手動刪除附表dr_1_xxxx_data_0的content字段,刪掉
6、然后進入cms后臺更新緩存即可
方法二、不禁用本身的content字段,列表循環標簽改一下:
join=1_news_data_0 on=id
例如列表循環時,加上的效果
{module catid=$catid join=1_news_data_0 on=id order=updatetime page=1}
這個寫法僅限于5萬以內的數據
這個方法效率遠遠沒有方法1高
方法三:在循環中進行二次調用content標簽,這種寫法效率最低,會影響整個頁面的查詢速度
{module module=news ******* return=r} {content module=news id=$r.id} 標題:{$t.title} 內容:{$t.content} {/content} {/module}
版權:所有文章為演示數據,版權歸原作者所有,僅提供演示效果!
轉載請注明出處:http://www.kangbangglove.com/gzwt/6151.html