query mysql distinta di codeigniter

each volta che uso get_where nel model mi dà tutte le voci del database incluse le duplicazioni e quando uso get solo mi dà solo la prima voce. Ma voglio tutte le voci distinte. Qualcuno mi può aiutare per favore. Molte grazie!

Controler = 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); } 

model = continents_get.php

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

view = content_western_australia.php

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

Distinto non functionrà sempre. Dovresti aggiungere – >group_by("name_of_the_column_which_needs_to_be unique");

Dai documenti CI :

  $this->db->distinct(); Adds the "DISTINCT" keyword to a query $this->db->distinct(); $this->db->get('table'); // Produces: SELECT DISTINCT * FROM table 

Probabilmente perché ottieni solo una row.

Per mantenere le cose più semplici, Active Record consente di scrivere la query:

 $query = $this->db->query('SELECT DISTINCT main_en FROM p_maincategories WHERE PAGE = '.$this->db->escape($western_australia).');