【发布时间】:2018-11-07 05:00:53
【问题描述】:
我的模型如下所示
$values = array_count_values($books);
arsort($values);
$newArray = array_keys($values);
$views_books_array = array_slice($newArray, 0, 5);
$result = $this->db->where_in('book_id',$views_books_array)->get('books');
return $result->result_array();
新数组如下所示
数组([0] => 37 [1] => 28 [2] => 31 [3] => 30 [4] => 38)
但是当我获取检索数据时,它会随机获取数据,而不是我给出的数据
我将 book_id 传递给模型和控制器 我的控制器如下所示,
$data['result'] = $this->Book_Model->get_viewed_books($book_id);
如果我 print_r 结果会是这样的
数组([0] => 28 [1] => 30 [2] => 31 [3] => 37 [4] => 38)
这样,但我想要根据 newArray 的数据我做错了什么
请帮我解决这个问题,不胜感激
【问题讨论】:
-
你为什么用数组排序而不是使用sqls order by子句?
-
我从采石场中获取浏览次数最多的书籍,并根据尝试从数据库中检索的内容将其存储在数组中
-
例如我在索引 0 中浏览次数最多的书,书 id 37,但是当我从 sql 检索时,我得到书 id 28,因为书名以“A”开头
-
so order by id...绝对不需要对同一张表执行两次查询。例如,如果您想获得观看次数最多的书籍,
ORDER BY id ASC, views ASC。无论哪种方式,如果您有 sql 问题,您应该发布架构和相关表架构
标签: php sql arrays codeigniter