本文實(shí)例講述了帝國cms跨表查詢相關(guān)鏈接實(shí)現(xiàn)方法。分享給大家供大家參考。具體分析如下:
官方的相關(guān)鏈接不靈活,樣式不能任意的修改且無法跨表,很多人想跨表做相關(guān)鏈接,比如news和info都有幾篇文章,關(guān)鍵詞都有’北京’,那么如何調(diào)用這些有有同一關(guān)鍵詞的文章呢?為此寫了一個(gè)自定義函數(shù).
推薦學(xué)習(xí)《帝國cms教程》
小范圍的調(diào)用于本分類,稍大一點(diǎn)范圍可以調(diào)用同一表的文章,再大一點(diǎn)可以調(diào)用指定的表的文章,可以選要調(diào)用文章的數(shù)量,其實(shí)還可以升級(jí),比如指定調(diào)用某個(gè)表的文章數(shù)量,那個(gè)表的順序等,函數(shù)沒有樣式,稍微懂一點(diǎn)代碼的可以自行修改,其實(shí)不是特別難,如果有哪位升級(jí)了這個(gè)函數(shù),可以共享給大家.
代碼如下:
<?php function user_OtherLink($tbname,$num,$ck){ global $navinfor,$empire,$dbtbpre,$class_r ; $ck=(int)$ck ; if($ck==1||$ck==2){ $tbname=$class_r[$navinfor['classid']]['tbname'] ; } $num= $num=='' ? 5 : $num ; //缺省獲取數(shù)量為5 $tag_all=explode(',',$navinfor['infotags']); $tbname_num=explode(',',$tbname) ; $eq_num=ceil($num/count($tag_all)); for($i=0;$i<count($tag_all);$i++){ $r_1_1 =$empire->fetch1("select?tagid,tagname,num,isgood,cid?from?{$dbtbpre}enewstags?where?tagname='". $tag_all[$i]."'?order?by?tagid?limit?1")?; $tag_id[$i]=$r_1_1['tagid']?;?//tag的ID $tag_num[$i]=$r_1_1['num']?;?//tag下的文章數(shù)量 if($tag_num[$i]>=$eq_num){//如果TAG下的文章數(shù)量比平均的數(shù)量大或者等于,那么TAG的文章數(shù)量取平均值 $tag_num[$i]?=?$eq_num?;//重新賦值 }else{//如果TAG下的文章小于平均值,那么TAG取原有的文章數(shù)量。同時(shí)重新賦值平均值。 $eg_tag=?$eq_num-$tag_num[$i]?; $eq_num?+=?$eg_tag?; } //比如說有3個(gè)TAG,每個(gè)TAG下有4篇文章,現(xiàn)在指定要顯示10篇文章,那么每個(gè)TAG要拿出4篇,共有12篇文章 //3個(gè)TAG,每個(gè)TAG下有3篇文章,現(xiàn)在指定要顯示10篇文章,那么每個(gè)TAG要拿出3篇文章,共有9篇文章 //3個(gè)TAG,A有2篇文章,B有5篇文章,C有3篇文章,現(xiàn)在要顯示10篇文章,那么A拿出2篇文章,B拿出5篇文章,C拿出3篇文章, 共有10篇文章 //如果?A、B、C中除了當(dāng)前文章,還有相同的文章,那么會(huì)扣除重復(fù)的那篇文章,只取一次。所以指定的數(shù)量會(huì)有偏差 for($i_n=0;$i_n<count>query("select?tid,classid,id,mid?from?{$dbtbpre}enewstagsdata?where?tagid='".$tag_id[$i]."'?order? by?classid?"); $ri=1?; while($r=$empire->fetch($sql)) { $tbname_all[$r['tid']]=$class_r[$r['classid']]['tbname']?; if($tbname_all[$r['tid']]==$tbname_num[$i_n]?&&?$ri?fetch1("select?title,smalltext,titleurl,dp_jt,dp_dwz?from?{$dbtbpre}ecms_$tbname?where? id='".$id."'?order?by?newstime?limit?1")?; ////////顯示樣式在這修改 echo?$r_1_2['title'].'?'?; //////// } } ?> /** <?php OtherLink('news,info',7,3) ; ?> **/</count>
希望本文所述對(duì)大家的帝國cms建站有所幫助。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END