用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3900|回复: 4
收起左侧

如何把一个字段的结果转化为数组,并随机选出几个?

[复制链接]
发表于 2009-6-17 11:43:54 | 显示全部楼层 |阅读模式
本帖最后由 beautylove 于 2009-6-17 12:02 编辑

今天刚学CI .想解决一个问题,就是查询一个表里的结果。转换为数组。然后随机的选出N个。
id title  body

1效果一效果。。。。
2效果二二。。。。。哈哈
3三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三


上面是表entries 的简单表达。

查询语句,我用的是
PHP复制代码
 
$this->db->select('title');
$query = $this->db->get('entries');
 
复制代码


然后需要把查询结果随机选出5个。我找了这个代码?
PHP复制代码
 
<?php foreach($query->result() as $row):
$quotes = array(
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
            "14",
            "Chance favors the prepared mind - Louis Pasteur"
            );
 
 
      echo random_element($quotes); ?>
<br />
<?php endforeach ?>
 
 
复制代码


然后不知道如何把查询的结果,做为一个数组。弄出来。
我是刚学CI 基础很差,也看了手册。搜不到解决方案。
哪位同学帮忙看看?
发表于 2009-6-17 12:19:34 | 显示全部楼层
查询结果存为数组,很简单,看 http://codeigniter.org.cn/user_guide/database/results.html

随机取数据,用 mysql 的随机吧,看 AR 类里的 order 函数
发表于 2009-6-17 12:44:06 | 显示全部楼层
mysql的random是非常消耗资源的操作
发表于 2009-6-17 13:07:37 | 显示全部楼层
随机取用PHP实现啊,LIMIT控制就是咯.
 楼主| 发表于 2009-6-17 19:17:00 | 显示全部楼层
PHP复制代码
 
<?php
$query = $this->db->query("select * from keywords order by rand() limit 0,30");
 
 
foreach ($query->result() as $row)
{
   echo $row->keywords.',';
}
 
?>
 
 
复制代码


呵呵.用这个方法取出来了.谢谢大家..

本版积分规则