0
function get_result_professions($key_word)  
{  
    $sql = "SELECT users.name FROM users 
            inner join users_has_professions  on users_has_professions.users_id  = users.id 
            inner join professions on users_has_professions.professions_id  = professions.id  
            where professions.key_word = ?  ";


    return   $this->db->get()->query($sql, $key_word);
} 

このコードを実行すると、次のエラーが表示されます。

A Database Error Occurred

Error Number: 1096

No tables used

SELECT *

Filename: /var/www/expertt/models/search_model.php

Line Number: 31

どうすればこの問題を解決できますか? 前もって感謝します。

4

2 に答える 2

0

$this->db->get()CodeIgniter のアクティブ レコードのメソッドは、テーブルのクエリに使用する場合、テーブル名パラメーター (詳細については、アクティブ レコードのドキュメントを参照してください) を必要とします。ただし、提供されている他のメソッドのいずれかを使用してクエリを事前に作成していない場合は除きます。

通常、あなたが行っているように結合を構築するときは、次のように Active Record が提供する select/ join メソッドを使用します。

$this->db->select('users.name')->from('users')
    ->join('users_has_professions', 'users_has_professions.users_id  = users.id')
    ->join('professions', 'users_has_professions.professions_id  = professions.id')
    ->where('professions.key_word', $key_word); 

(実行するデータベースがないため、テストされていません)

その後、$this->db->get()メソッドを使用して結果を取得できます

$results = $this->db->get();
foreach($query->result() as $row) {
    //code here
}
于 2013-05-23T12:01:24.000 に答える