帝国cms最高效的几种随机文章的写法是什么-(帝国cms生成app)
php随机文章
方法一、WC写的高效随机调用
?php
$随机数=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:循环]
问题:因为在$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,直接页面格式
步骤2:代码大致如下(以下需要连接数据库)
!--code.start--?php
需要('e/class/connect.php'); //引入数据库配置文件和公共函数文件
需要('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 ))+(选择最小值(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id=t2.id ORDER BY t1.id LIMIT 1';
?--代码结束--
!--code.start--?php
$str='';
为($i=1;$i11;$i++){
$nr=$empire-fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str.'lia href=''.$titleurl.'' title=''.$nr['title'].'''.$nr['title'].'/a/li ';
}
db_close(); //关闭MYSQL链接
$帝国=空; //取消操作类变量
回声$str;
?--代码结束--
第三步:使用[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=400allowTransparencyscrollbars=yesframeBorder='0'/iframe(成功,但不利于seo)
注:看一下code.start和code.end做了什么(只是求和):
//解析代码
函数RepExeCode($string){
全局$public_r;
if($public_r[candocode])
{
$string=str_replace('!--code.start--','',$string);
$string=str_replace('!--code.end--','',$string);
}
返回$字符串;
}
for($i=1;$i11;$i++){ 这行中的11表示调用10个项目。例如: for($i=1;$i6;$i++){ 表示使用5 个项目。
方法2----进化,
直接在根目录(可以选择更改目录)新建一个php文件,将以下代码复制进去
?php
需要('./class/connect.php'); //引入数据库配置文件和公共函数文件
需要('./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 ))+(选择最小值(id)
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id=t2.id ORDER BY t1.id LIMIT 1';
?
?php
$str='';
为($i=1;$i6;$i++){
$nr=$empire-fetch1($sql);
$titleurl=sys_ReturnBqTitleLink($nr);
$str=$str.'lia href=''.$titleurl.'' title=''.$nr['title'].''h3 class='title''.$nr['title'].' /h3/a/li ';
}
db_close(); //关闭MYSQL链接
$帝国=空; //取消操作类变量
回声$str;
?