帝国CMS最高效的几种随机文章的写法醉坚强1年前发布关注私信06714 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; ?> 帝国CMS最高效的几种随机文章的写法.doc © 版权声明 本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢! 分享是一种美德,当你分享时请你附带上本文链接。 THE END帝国cms教程# 帝国cms# 随机文章# 高效 点赞14 分享QQ空间微博QQ好友海报分享复制链接收藏