加入收藏 | 设为首页 | 会员中心 | 我要投稿 牡丹江站长网 (https://www.0453zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

帝国CMS最高效的几类随机文章的写法

发布时间:2022-04-18 10:25:14 所属栏目:经验 来源:互联网
导读: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=?=$bq
         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;
 
?>

(编辑:牡丹江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!