3

每当我在模型中使用 get_where 时,它​​都会给我所有数据库条目,包括重复项,而当我只使用 get 时,它只会给我第一个条目。但我想要所有不同的条目。谁能帮助我。非常感谢!

控制器 = site.php:

public function western_australia(){
    $this->load->model("continents_get");
    $data["results"] = $this->continents_get
                            ->getMaincategories("western_australia");
    $this->load->view("content_western_australia", $data);
}

模型 = 大陆_get.php

function getMaincategories($western_australia){
    $this->db->distinct();
    $query = $this->db->get_where("p_maincategories", 
                    array("page" => $western_australia));
    return $query->result();
}

视图 = content_western_australia.php

<?php
    foreach($results as $row){
        $page = $row->page;
        $main_en = $row->main_en;
        echo $main_en; 
?>
4

2 回答 2

8

Distinct will not always work. You should add ->group_by("name_of_the_column_which_needs_to_be unique");

于 2012-08-26T14:45:33.930 回答
0

来自CI文档:

 $this->db->distinct();

Adds the "DISTINCT" keyword to a query

$this->db->distinct();
$this->db->get('table');

// Produces: SELECT DISTINCT * FROM table

可能是为什么你只得到一条线。

为了让事情更简单,Active Record 允许您编写查询:

$query = $this->db->query('SELECT DISTINCT main_en FROM p_maincategories 
WHERE PAGE =  '.$this->db->escape($western_australia).');
于 2012-08-26T14:33:52.717 回答