找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1021|回复: 0

phpwind中主题tags相关话题功能实现解析

[复制链接]
发表于 2013-1-1 00:44:14 | 显示全部楼层 |阅读模式

首先列出有关tag记录的表
pw_tmsgs 表中有   `tags` varchar(100) NOT NULL DEFAULT ''
pw_tags表
CREATE TABLE nw_tags (
tagid mediumint(8) unsigned NOT NULL auto_increment,
tagname varchar(15) NOT NULL default '',
num mediumint(8) NOT NULL default '0',
ifhot tinyINT(1) NOT NULL default '0',
PRIMARY KEY(tagid),
KEY idx_ifhot_num (ifhot,num),
KEY idx_tagname (tagname)
) TYPE=MyISAM;
pw_tagdata表
CREATE TABLE nw_tagdata (
tagid mediumint(8) NOT NULL default '0',
tid INT(10) unsigned NOT NULL default '0',
KEY idx_tagid (tagid),
KEY idx_tid(tid)
) TYPE=MyISAM;
阅读页中相关话题调用文件 read.php
处理代码如下:
list($tagdb,$tpc_tag) = explode("\t",$read['tags']);
$tagdbs = explode(' ',$tagdb);

if ($tagdbs) {
        $query = $db->query("SELECT tagid FROM nw_tags WHERE tagname IN(" . S::sqlImplode($tagdbs) . ')');
        while ($rt = $db->fetch_array($query)) {
                $tagid[] = $rt['tagid'];
        }
}
if ($tagid) {
        $query = $db->query("SELECT t.tid,t.subject FROM nw_tagdata tg LEFT JOIN nw_threads t USING(tid) $sql AND tg.tagid IN(" . S::sqlImplode($tagid) . ") GROUP BY tid ORDER BY postdate DESC ".S::sqlLimit(0,$forumset['relatednums']));
        while ($rt = $db->fetch_array($query)) {
                $rt['title'] = $rt['subject'];
                $rt['url'] = "read.php?tid=".$rt['tid'];
                unset($rt['subject']);
                unset($rt['tid']);
                $relatedb[] = $rt;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|要学吧论坛

GMT+8, 2026-1-23 23:55 , Processed in 0.031681 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表