帝国CMS动态版循环栏目伪静态地址

$orderby=(int)$_GET[orderby];
$tag=(int)$_GET[tag];
$tese=(int)$_GET[tese];
$classid=$GLOBALS[navclassid];
<a class="elm<?if (!$tag){?> select<?}?>" href="/game/search-<?=$classid?>-<?=$orderby?>-0-<?=$tese?>-0.html" rel="external nofollow" >全部</a>
<?
$sqls="select * from {$dbtbpre}ecms_tag where classid='$cid' and isgood<>0";
$sql=$empire->query($sqls);
while($bqr=$empire->fetch($sql))
{
?>
<a href="/game/search-<?=$classid?>-<?=$orderby?>-<?=$bqr[id]?>-<?=$tese?>-0.html" rel="external nofollow"  title="<?=$bqr[title]?>"<?if ($tag==$bqr[id]){?> class="select"<?}?>><?=$bqr[title]?></a>
<?
}
?>

 

 

帝国cms挪用相关文章有默认的挪用标签方式:[otherlink],然则[otherlink]挪用效率不高,不能知足所有情形下的相关挪用,这里我们就需要自己写SQL了。

挪用相关信息原理也就是遵照一个字段条件,匹配他们的关联系了,下面阿奇源码网分享几种匹配方式的挪用相关信息方式。

[otherlink]方式

[otherlink]标签模板ID,操作工具,挪用条数,题目截取字数,是否显示栏目名,操作类型,只显示题目图片的信息[/otherlink]

SQL匹配截取题目要害词

<?php echo $navinfor[title]; $v= mb_substr($navinfor[title],0,4,'UTF-8');?> //获取当前文章题目,截取4个字符,并赋值给$v变量
[e:loop={"select * from phome_ecms_news where title like '%$v%' order by rand() desc limit 10",10,24,0}] //把$v加入到查询语句中,随机查询新闻表中title字段包罗$v值的题目的文章,取出10条
<li><a href="<?=$bqsr['titleurl']?>" rel="external nofollow"  rel="external nofollow"  target="_blank">
<?=$bqr['title']?>
</a></li>
[/e:loop]

灵动标签匹配全题目

[e:loop={'news',10,3,0,"title like '%$navinfor[title]%'",''}]    
   <li>·<a href="<?=$bqsr['titleurl']?>" rel="external nofollow"  rel="external nofollow"  target="_blank"><?=esub($bqr[title],24)?></a></li> 
[/e:loop]

①、对照粗拙的匹配,可能不太准确:title like ‘%$navinfor[keyboard]%’

②、准确的匹配,对照消耗资源:title regexp ‘(^|,)$navinfor[keyboard]($|,)’

帝国cms调用留言板信息到任意位置

 

帝国cms调用留言板信息到任意位置,具体调用哪些字段看最下面的数据表介绍。

[e:loop={'select * from [!db.pre!]enewsgbook order by bid=1 desc limit 8',8,24,0}]
<li><i><?=$bqr[lb]?>:<?=$bqr[zt]?></i> <em>[ <?=date("Y-m-d H:i:s",$bqr[lytime])?> ]</em></li>
[/e:loop]

这里调用的是留言分类为1的留言,不需要可以删除order by bid=1 desc,limit 8为调用8条。

phome_enewsgbook 数据表字段解释(留言板表)

字段名 类型 解释 附加说明
lyid int(11) 留言ID
name varchar(30) 姓名
email varchar(80) 邮箱
call varchar(30) 电话
lytime datetime 留言时间
lytext text 留言内容
retext text 留言回复
bid smallint(6) 留言分类ID
ip varchar(20) 留言IP
checked tinyint(1) 留言是否审核通过 1为未审核,0为已审核
userid int(11) 提交者用户ID
username varchar(30) 提交者用户名

固然也可以用要害字匹配

①、对照粗拙的匹配,可能不太准确:keyboard like ‘%$navinfor[keyboard]%’

②、准确的匹配,对照消耗资源:keyboard regexp ‘(^|,)$navinfor[keyboard]($|,)’

在没有要害字时,挪用最新的文章来替换

<?
if ($navinfor[keyboard]){
$xgkey2=explode(",",$navinfor[keyboard]);
for ($i=0;$i<count($xgkey2);$i++){
    if ($i==0){
    $xg2.="keyboard like '%".$xgkey2[$i]."%' ";
    } else {
    $xg2.="or keyboard like '%".$xgkey2[$i]."%' ";
    }
}
$xgsql2=$empire->query("select * from {$dbtbpre}ecms_news where $xg2 and id!='$navinfor[id]' order by newstime desc limit 10"); 
while($xgs2=$empire->fetch($xgsql2)){
?>
          <h2><a href="<?=$xgs2['titleurl']?>" rel="external nofollow"  title="<?=$xgs2['title']?>"><strong><?=$xgs2['title']?></strong></a></h2>
<?
}
}
else{
$tsql=$empire->query("select * from {$dbtbpre}ecms_news order by newstime desc limit 10");
while($r=$empire->fetch($tsql)){
?>
          <h2><a href="<?=$r['titleurl']?>" rel="external nofollow"  title="<?=$r['title']?>"><strong><?=$r['title']?></strong></a></h2>
<?
}
}
?>

 

帝国cms结合项去除like匹配为数字型完全匹配方法

 

帝国cms结合项中,去除【like %%】模糊匹配,换成数字型完全匹配方法。

对于数据量小,不需理会,如:下拉框的,单选/多选

单选处理方法

字段:TINYINT,长度1

3==最近可约:default
6==周六可约
7==周天可约
1==提前1天约
2==提前2天约

ListInfo.php文件内改动

//改为完全匹配
if (false !== strstr($emod_r[$mid]['checkboxf'], ','.$andr[$i].',')) {
$listandf.=$doandor.$andr[$i]." LIKE '%".$andval."%'";
}else{
$listandf .= $doandor.$andr[$i] . (is_numeric($andval) ? "=".$andval : "='".$andval."'");
}

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。