帝国CMS跨表查询相关链接怎么弄

  介绍

小编给大家分享一下帝国CMS跨表查询相关链接怎么弄,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

代码如下:

& lt; php ?   函数user_OtherLink (tbname, num美元,美元ck) {   全球navinfor美元,美元帝国,dbtbpre美元,美元class_r;   ck=(int)美元ck;   如果(ck美元==1 | | $ ck==2) {   tbname=class_r美元($ navinfor [& # 39; classid& # 39;]] [& # 39; tbname& # 39;];   }   num=num美元==& # 39;& # 39;吗?5:num美元;//缺省获取数量为5   美元tag_all=爆炸(& # 39;& # 39;美元navinfor [& # 39; infotags& # 39;]);   美元tbname_num=爆炸(& # 39;& # 39;tbname美元);   $ eq_num=装天花板(num美元/count ($ tag_all));   (我=0;i<美元;count ($ tag_all);美元我+ +){   r_1_1=美元帝国→fetch2(“选择tagid, tagname num,短距离,cid从{$ dbtbpre} enewstags tagname=& # 39;“。   $ tag_all[我]美元霸主地位;& # 39;order by tagid限制1“);   tag_id美元($ i)=$ r_1_1 [& # 39; tagid& # 39;];//标签的ID   tag_num美元($ i)=$ r_1_1 [& # 39; num # 39;];//标签下的文章数量   如果(tag_num美元($ i)在=$ eq_num){//如果标签下的文章数量比平均的数量大或者等于,那么标签的文章数量取平均值   tag_num美元($ i)=$ eq_num;//重新赋值   其他}{//如果标签下的文章小于平均值,那么标签取原有的文章数量。同时重新赋值平均值。   $ eg_tag=eq_num - tag_num美元($ i);   eq_num +=eg_tag美元;   }//比如说有3个标签,每个标签下有4篇文章,现在指定要显示10篇文章,那么每个标签要拿出4篇,共有12篇文章//3个标签,每个标签下有3篇文章,现在指定要显示10篇文章,那么每个标签要拿出3篇文章,共有9篇文章//3个标签,有2篇文章,B有5篇文章,C有3篇文章,现在要显示10篇文章,那么一个拿出2篇文章,B拿出5篇文章,C拿出3篇文章,   共有10篇文章//如果A, B, C中除了当前文章,还有相同的文章,那么会扣除重复的那篇文章,只取一次,所以指定的数量会有偏差   (i_n=0; i_n<美元;count ($ tbname_num);美元i_n + +) {   sql=美元帝国→查询(“选择tid, classid, id,中期从{$ dbtbpre} enewstagsdata tagid=& # 39;“tag_id美元。[我]美元霸主地位;& # 39;订单   由classid“);   国际扶轮=1美元;   而(r=美元帝国→获取(sql)美元)   {   tbname_all美元($ r (& # 39; tid # 39;]]=$ class_r [$ r (& # 39; classid& # 39;]] [& # 39; tbname& # 39;];   如果(tbname_all美元($ r (& # 39; tid # 39;]]==$ tbname_num (i_n美元),,国际扶轮& lt;美元=$ tag_num ($ i),,$ navinfor [& # 39; classid& # 39;] !=$ r (& # 39; classid& # 39;),,   $ navinfor [& # 39; id # 39;] !=$ r (& # 39; id # 39;)) {   如果(ck==1,美元及美元navinfor [& # 39; classid& # 39;]==$ r (& # 39; classid& # 39;)) {   tbname_all_r美元($ r (& # 39; tid # 39;]]=$ class_r [$ r (& # 39; classid& # 39;]] [& # 39; tbname& # 39;];   classid_id美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;]。& # 39;_ # 39;。$ r (& # 39; id # 39;);   classid_all美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;);   id_all美元($ r (& # 39; tid # 39;]] [$ r (& # 39; classid& # 39;]]=$ r (& # 39; id # 39;);   }elseif (ck==2,美元及美元class_r navinfor美元[[& # 39;classid& # 39;]] [& # 39; tbname& # 39;]==class_r美元($ r (& # 39; classid& # 39;]] [& # 39; tbname& # 39;)) {   tbname_all_r美元($ r (& # 39; tid # 39;]]=$ class_r [$ r (& # 39; classid& # 39;]] [& # 39; tbname& # 39;];   classid_id美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;]。& # 39;_ # 39;。$ r (& # 39; id # 39;);   classid_all美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;);   id_all美元($ r (& # 39; tid # 39;]] [$ r (& # 39; classid& # 39;]]=$ r (& # 39; id # 39;);   }elseif (ck美元==3){   tbname_all_r美元($ r (& # 39; tid # 39;]]=$ class_r [$ r (& # 39; classid& # 39;]] [& # 39; tbname& # 39;];   classid_id美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;]。& # 39;_ # 39;。$ r (& # 39; id # 39;);   classid_all美元($ r (& # 39; tid # 39;]]=$ r (& # 39; classid& # 39;);   id_all美元($ r (& # 39; tid # 39;]] [$ r (& # 39; classid& # 39;]]=$ r (& # 39; id # 39;);   }   美元国际扶轮+ +;   }   }   }   }   (classid_id_x=array_unique美元classid_id);//去除重复的值//去除重复的值,不同的标签会有相同的文章,所以去除重复的值比。如一个篇文章里面都有“北京“,“奥运“,两个关键词,   B篇文章里面也有“北京“,“奥运“在不去除重复的情况下,一篇的相关链接会出现两次B文章,所以必须去除其中一个。   arsort ($ classid_id_x);//按键名排列,倒序   (tid_tid=中的美元classid_id_x);//取出键名重新排列,键名即为标签的ID:本署   洗牌($ tid_tid);//顺序打乱,重新排   $ tid_tid_num=count ($ tid_tid);   如果(num

帝国CMS跨表查询相关链接怎么弄