beautylove 发表于 2009-6-17 11:43:54

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

本帖最后由 beautylove 于 2009-6-17 12:02 编辑

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

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

上面是表entries 的简单表达。

查询语句,我用的是

$this->db->select('title');
$query = $this->db->get('entries');


然后需要把查询结果随机选出5个。我找了这个代码?

<?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 基础很差,也看了手册。搜不到解决方案。
哪位同学帮忙看看?

Hex 发表于 2009-6-17 12:19:34

查询结果存为数组,很简单,看 http://codeigniter.org.cn/user_guide/database/results.html

随机取数据,用 mysql 的随机吧,看 AR 类里的 order 函数

visvoy 发表于 2009-6-17 12:44:06

mysql的random是非常消耗资源的操作

crazymkj 发表于 2009-6-17 13:07:37

随机取用PHP实现啊,LIMIT控制就是咯.

beautylove 发表于 2009-6-17 19:17:00


<?php
$query = $this->db->query("select * from keywords order by rand() limit 0,30");


foreach ($query->result() as $row)
{
   echo $row->keywords.',';
}

?>



呵呵.用这个方法取出来了.谢谢大家..
页: [1]
查看完整版本: 如何把一个字段的结果转化为数组,并随机选出几个?