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

帝国教程 强烈建议 2024-03-04 08:30 78 0

  php随机文章

  方法1、WC写的高效随机调用

  

  $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)}]

  >

  [/e:loop]

  问题:因为在 $randids.=$randdh.rand(18,30); 这个里,ID改成1,10000,无法显示,只有改成当前栏目的最小和最大ID,才能显示出来。那么问题是:现在文章少,如果以 后文章增多,这里的最大ID要随时修改么?还是有其他的办法呢?

  答案:增加个系统扩展变量,以后改扩展变量就可以,不用改模板

  如:增加了一个扩展变量 写到“$randids.=$randdh.rand(18,30); ”

  格式为: $randids.=$randdh.rand($public_r['add_listnum']>); 即:把去掉

  ----------------------------------------------------------------------------------------------------------------------------------------------

  方法2、

  第一步:创建一个自定义页面:后台-栏目-自定义页面- 增加自定义页面

  填写:①页面模式:直接页面式 ②页面名称(*):php随机文章 ③文件名(*): /test.php (在根目录) ④所属分类:有就选择没有就默认不选

  ⑤ 网页标题、网页关键词、网页描述:省略不填了 ⑥页面内容(*):看第二步

  注释:填写大意为:位置为 /test.php,直接页面式

  第二步:代码大致为(下面的要连接上数据库)

  ?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;

  ?

  ?php

  $str=;

  for($i=1;$i<11;$i++){

  $nr= $empire->fetch1($sql);

  $titleurl=sys_ReturnBqTitleLink($nr);

  $str=$str.

  • .$nr['title'].
  • ;

      }

      db_close(); //关闭MYSQL链接

      $empire=null; //注消操作类变量

      echo $str;

      ?

      第三步:①模板中用[readhttp]'http://127.0.0.1/dg2/test.php'[/readhttp] 调用文件 (不成功,只有后台刷新才能随机变化)

      ②用框架代码: (成功,但不利于seo)

      注释:①看看 code.start 和 code.end是干啥的(就是<和>):

      //解析代码

      function RepExeCode($string){

      global $public_r;

      if($public_r[candocode])

      {

      $string=str_replace('','<',$string);

      $string=str_replace('','>',$string);

      }

      return $string;

      }

      ②for($i=1;$i<11;$i++){ 这行中的11表示调用10条 举例:for($i=1;$i<6;$i++){ 表示条用5条

      方法2----演变、

      直接在根目录(目录自行选择更改)新建一个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;

      ?>

      

      $str=;

      for($i=1;$i<6;$i++){

      $nr= $empire->fetch1($sql);

      $titleurl=sys_ReturnBqTitleLink($nr);

      $str=$str.

  • .$nr['title'].

  • ;

      }

      db_close(); //关闭MYSQL链接

      $empire=null; //注消操作类变量

      echo $str;

    本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!