2012-03-09 18 views
0

私はCIの複数のテーブルからデータを取得しようとしていますが、私は同様の答えや例を探していましたが、見つけませんでした。これまで私が行ってきたことがあります。Codeigniterの複数のテーブルからデータを取得する

これは私がちょうど私の運をテストしていたので、これは私が私のコントローラのanuncioに呼びかけてきた機能である私がモデルに必要なデータを取得するために「anuncios_model.php」

public function return_all_for_id($id){ 
    $this->db->select('anuncios.*'); 
    $this->db->select('usuarios.id, usuarios.link, usuarios.nombre'); 
    $this->db->select('departamentos.nombre_departamento'); 
    $this->db->select('categorias.nombre, categorias.link'); 
    $this->db->select('subcategorias.nombre, subcategorias.link'); 
    $this->db->from('anuncios, usuarios, departamentos, categorias, subcategorias'); 
    $this->db->where('anuncios.id_anuncio', $id); 
    $where = 'anuncios.id_cat = categorias.id AND anuncios.id_subcat = subcategorias.id AND anuncios.id_user = usuarios.id AND anuncios.id_departamento = departamentos.id_departamento'; 
    $this->db->where($where); 
    return $result = $this->db->get(); 
} 

機能です.PHP」

public function test(){ 
    $data['result'] = $this->anuncios_model->return_all_for_id(1); 
    $this->load->view('pages/test' ,$data); 
} 

そして、私のビュー 'test.phpを'

<?php 
    print_r($result); 
?> 

すべて私はWH取得しています私は 'anuncio/test'を実行します:

CI_DB_mysql_result Object ([conn_id] => Resource id #29 [result_id] => Resource id #38 [result_array] => Array () [result_object] => Array () [custom_result_object] => Array () [current_row] => 0 [num_rows] => 1 [row_data] =>) 

私には何かが不足していますか?

+0

は実際に、それは良かったです。 $ result = $ this-> db-> get()を返す代わりに、$ result-> result_array()を返す必要がありました。私の悪い。 –

+1

将来の訪問者にソリューションを投稿し(受け入れられたとしてマークする)、質問をまとめて削除してください。 –

答えて

0

あなたもこれを試すことができます。

$query = $this->db->get(); 

return $query->result(); 
0

実際、私のアプローチはほぼ良好でした。 $ result = $ this-> db-> get()を返す代わりに、$ result-> result_array()を返す必要がありました。 $ this-> db-> getはある種の奇妙なオブジェクトを返します。

関連する問題