帝国论坛帝国网站管理系统交流区帝国CMS使用交流发个比较高效的随机调用方法 【本版专题贴子】  
 9/15    |‹ ‹‹ 7 8 9 10 11 12 13 14 15 ›› ›|
主题:发个比较高效的随机调用方法 [加入收藏夹]   

lba8610
用户头衔:秀才

精华贴   :0
发贴数   :81
经验值   :565
注册时间:2010-05-16
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 81 楼]

你这个方法是不错,但有个问题 当其中某个信息被删除后 id不存在情况下就不好弄,看看我的小游戏网站 http://www.36tao.com 也是随机生成数据,
给你思路  先把要随机信息存储在xml文件保存在本地  页面刷新时候直接读文件 不读取数据库,这样就不会慢了




2012-05-31 10:42:17 已设置保密 顶部 回复 引用 报告 编辑 删除

lba8610
用户头衔:秀才

精华贴   :0
发贴数   :81
经验值   :565
注册时间:2010-05-16
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 82 楼]

这个有帮助
http://bbs.phome.net/ShowThread?threadid=242480&forumid=13




2012-05-31 11:54:53 已设置保密 顶部 回复 引用 报告 编辑 删除

zhangjunjun
用户头衔:举人

精华贴   :0
发贴数   :124
经验值   :893
注册时间:2010-04-30
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 83 楼]




我爱岗李店:http://www.52gld.com 岗李店在线:http://bbs.52gld.com 东晟网络:http://www.ds100.net
2012-09-05 11:12:43 已设置保密 顶部 回复 引用 报告 编辑 删除

lovestory
用户头衔:举人

精华贴   :0
发贴数   :202
经验值   :972
注册时间:2011-04-08
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 84 楼]

原帖由 wm_chief 于 2010-12-27 11:29:34 发表

看不少人喜欢用ORDER BY RAND()随机调用,随机调用是最耗资源的一种调用方式,信息数在1万以上随机调用就开始影响速度。使用时...


这里我说一下哈,随机到得到的ID,如果不连续的怎么办?

假如现在,ID有:1,2,3,4,5 昨天我删除一个ID为4的文章,今天随机1到5之间的ID,如果随机到4那不就少调用一条了吗?所在我建议随机大于调用的顺,然后用mysql limit

<?php
$maxrs=$empire->fetch1("select max(id) from phome_ecms_enews limit 1");  //找出数据表中最大ID
$minrs=$empire->fetch1("select min(id) from phome_ecms_enews limit 1");  //找出数据表中最小ID
//然后找出100个随机ID,范围在最大ID与最小ID之间,100可以依据你要显示的条数自己设的,100肯定要大于你要查询的条数,因为1,可能在1-100中的ID是不连续的2,rand可能会产生两个一样的
for($i=0;$i<100;$i++){
  if($randid){
        $douhao=',';  //多个ID用逗号分开 加个判断是为了不让逗号出现在最前面或最后面,不然mysql in语法会出错
  }
  $randid=$randid.$douhao.rand($minrs[id],$maxrs[id]);
}
?>
[ecmsinfo]"select * from phome_ecms_enews where id in($randid)",....[/ecmsinfo]



上海网站制作
2012-09-05 12:17:32 已设置保密 顶部 回复 引用 报告 编辑 删除

天浪歌
用户头衔:嘉宾

精华贴   :3
发贴数   :1810
经验值   :4210
注册时间:2006-09-14
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 85 楼]

这样会有可能产生重复哦



ECMSer
有事就Q我 3260602 3260602@qq.com
帝国教程之猪头系列
2012-09-06 11:25:48 已设置保密 顶部 回复 引用 报告 编辑 删除

meiwenhua
用户头衔:秀才

精华贴   :0
发贴数   :506
经验值   :539
注册时间:2012-09-05
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 86 楼]

很受用啊



http://www.mn88888.com http://www.lbzl8.com/ http://www.zhuang88.org http://www.xingbingfzw.com http://www.qingxin123.com http://www.boy120.com
2012-09-06 11:35:13 已设置保密 顶部 回复 引用 报告 编辑 删除

kmt1989
用户头衔:书生

精华贴   :0
发贴数   :17
经验值   :123
注册时间:2011-10-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 87 楼]

$maxrs=$empire->fetch1("select max(id) from phome_ecms_enews limit 1");  //找出数据表中最大ID
$minrs=$empire->fetch1("select min(id) from phome_ecms_enews limit 1");  //找出数据表中最小ID




2013-01-25 15:58:58 已设置保密 顶部 回复 引用 报告 编辑 删除

kmt1989
用户头衔:书生

精华贴   :0
发贴数   :17
经验值   :123
注册时间:2011-10-27
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 88 楼]

$maxrs=$empire->fetch1("select max(id) from phome_ecms_enews limit 1");  //找出数据表中最大ID
$minrs=$empire->fetch1("select min(id) from phome_ecms_enews limit 1");  //找出数据表中最小ID
根本服务获取数据啊??????

[该贴被修改 2 次,最后修改时间 2013-01-25 15:59:40 ]



2013-01-25 15:58:59 已设置保密 顶部 回复 引用 报告 编辑 删除

降龙在天
用户头衔:进士

精华贴   :0
发贴数   :1140
经验值   :2936
注册时间:2008-06-20
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 89 楼]

支持一下




2013-01-27 00:12:22 已设置保密 顶部 回复 引用 报告 编辑 删除

xsxuanshi
用户头衔:书生

精华贴   :0
发贴数   :34
经验值   :84
注册时间:2013-09-23
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 90 楼]

一般般



上海轩世机械有限公司  http://www.xuanshichina.com
2013-09-23 16:40:57 已设置保密 顶部 回复 引用 报告 编辑 删除
 9/15    |‹ ‹‹ 7 8 9 10 11 12 13 14 15 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1