帝国CMS最高效的几种随机文章的写法
时间:2023年09月22日
/来源:网络
/编辑:佚名
帝国cms模板php随机文章
方法1、WC写的高效随机调用
<?php
$randnum=1; //随机数量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(18,30); //1为最小ID,100000为最大ID
$randdh=',';
}
?>
[e:loop={29,1,0,0,"id in ($randids)"}]
<a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],42)?></a>
[/e:loop]
问题:因为在 $randids.=$randdh.rand(18,30); 这个里,ID改成1,10000,无法显示,只有改成当前栏目的最小和最大ID,才能显示出来。那么问题是:现在文章少,如果以 后文章增多,这里的最大ID要随时修改么?还是有其他的办法呢?
答案:增加个系统扩展变量,以后改扩展变量就可以,不用改模板
如:增加了一个<?=$public_r['add_listnum']?>扩展变量 写到“$randids.=$randdh.rand(18,30); ”
格式为: $randids.=$randdh.rand($public_r['add_listnum']); 即:把<?和?>去掉
方法2
第一步:创建一个自定义页面:后台-栏目-自定义页面- 增加自定义页面
填写:
①页面模式:直接页面式
②页面名称(*):php随机文章
③文件名(*): ../../test.php (在根目录)
④所属分类:有就选择没有就默认不选
⑤ 网页标题、网页关键词、网页描述:省略不填了
⑥页面内容(*):看第二步
注释:填写大意为:位置为 ../../test.php,直接页面式
第二步:代码大致为(下面的要连接上数据库)
<!--code.start-->?php
require('e/class/connect.php'); //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?<!--code.end-->
<!--code.start-->?php
$str="";
for($i=1;$i<11;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'>".$nr['title']."</a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?<!--code.end-->
第三步:
①模板中用[readhttp]'http://127.0.0.1/dg2/test.php'[/readhttp] 调用文件 (不成功,只有后台刷新才能随机变化)
②用框架代码:
<iframe border=0 name=lantk src="http://127.0.0.1/dg2/test.php" width=400 height=400 allowTransparency scrollbars=yes frameBorder="0"></iframe> (成功,但不利于seo)
注释:①看看 code.start 和 code.end是干啥的(就是<和>):
//解析代码
function RepExeCode($string){
global $public_r;
if($public_r[candocode])
{
$string=str_replace('<!--code.start-->','<',$string);
$string=str_replace('<!--code.end-->','>',$string);
}
return $string;
}
②for($i=1;$i<11;$i++){ 这行中的11表示调用10条 举例:for($i=1;$i<6;$i++){ 表示调用5条
方法2----演变
直接在根目录(目录自行选择更改)新建一个php文件把下面的代码复制进去
<?php
require('../class/connect.php'); //引入数据库配置文件和公共函数文件
require('../class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?>
<?php
$str="";
for($i=1;$i<6;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'><h3 class='title'>".$nr['title']."</h3></a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?>
方法1、WC写的高效随机调用
<?php
$randnum=1; //随机数量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(18,30); //1为最小ID,100000为最大ID
$randdh=',';
}
?>
[e:loop={29,1,0,0,"id in ($randids)"}]
<a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],42)?></a>
[/e:loop]
问题:因为在 $randids.=$randdh.rand(18,30); 这个里,ID改成1,10000,无法显示,只有改成当前栏目的最小和最大ID,才能显示出来。那么问题是:现在文章少,如果以 后文章增多,这里的最大ID要随时修改么?还是有其他的办法呢?
答案:增加个系统扩展变量,以后改扩展变量就可以,不用改模板
如:增加了一个<?=$public_r['add_listnum']?>扩展变量 写到“$randids.=$randdh.rand(18,30); ”
格式为: $randids.=$randdh.rand($public_r['add_listnum']); 即:把<?和?>去掉
方法2
第一步:创建一个自定义页面:后台-栏目-自定义页面- 增加自定义页面
填写:
①页面模式:直接页面式
②页面名称(*):php随机文章
③文件名(*): ../../test.php (在根目录)
④所属分类:有就选择没有就默认不选
⑤ 网页标题、网页关键词、网页描述:省略不填了
⑥页面内容(*):看第二步
注释:填写大意为:位置为 ../../test.php,直接页面式
第二步:代码大致为(下面的要连接上数据库)
<!--code.start-->?php
require('e/class/connect.php'); //引入数据库配置文件和公共函数文件
require('e/class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?<!--code.end-->
<!--code.start-->?php
$str="";
for($i=1;$i<11;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'>".$nr['title']."</a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?<!--code.end-->
第三步:
①模板中用[readhttp]'http://127.0.0.1/dg2/test.php'[/readhttp] 调用文件 (不成功,只有后台刷新才能随机变化)
②用框架代码:
<iframe border=0 name=lantk src="http://127.0.0.1/dg2/test.php" width=400 height=400 allowTransparency scrollbars=yes frameBorder="0"></iframe> (成功,但不利于seo)
注释:①看看 code.start 和 code.end是干啥的(就是<和>):
//解析代码
function RepExeCode($string){
global $public_r;
if($public_r[candocode])
{
$string=str_replace('<!--code.start-->','<',$string);
$string=str_replace('<!--code.end-->','>',$string);
}
return $string;
}
②for($i=1;$i<11;$i++){ 这行中的11表示调用10条 举例:for($i=1;$i<6;$i++){ 表示调用5条
方法2----演变
直接在根目录(目录自行选择更改)新建一个php文件把下面的代码复制进去
<?php
require('../class/connect.php'); //引入数据库配置文件和公共函数文件
require('../class/db_sql.php'); //引入数据库操作文件
$link=db_connect(); //连接MYSQL
$empire=new mysqlquery(); //声明数据库操作类
$sql="SELECT * FROM {$dbtbpre}ecms_news AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
?>
<?php
$str="";
for($i=1;$i<6;$i++){
$nr= $empire->fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'><h3 class='title'>".$nr['title']."</h3></a></li> ";
}
db_close(); //关闭MYSQL链接
$empire=null; //注消操作类变量
echo $str;
?>
新闻资讯 更多
- 【帝国cms教程】帝国CMS模板变量$GLOBALS[navclassid]用法分析04-03
- 【帝国cms教程】鲜为人知帝国CMS内容页调用上一篇和下一篇的精华方法汇总04-03
- 【帝国cms教程】怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!04-03
- 【帝国cms教程】帝国CMS模板$GLOBALS[navclassid]用法详解04-03
- 【帝国cms教程】帝国cms 7.5版列表页分页样式修改笔记04-02
- 【帝国cms教程】解决帝国CMS搜索页面模板不支持灵动标签和万能标签的方法04-02
- 【帝国cms教程】帝国CMS只备份栏目和模板的方法04-02
- 【帝国cms教程】帝国CMS怎样删除清空数据库记录?04-02
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法