2017-10-02 13 views
0

コントローラ:codeigniterでコントローラからモデルに変数を渡すには?

$this->data['students'] = $this->student_m->get_order_by_student_sattendance($id); 

モデル:

function get_order_by_student_sattendance($val) { 
    $this->db->select()->from(student)->where('FIND_IN_SET($val, classesID)'); 
     $query = $this->db->get(); 
     return $query->result(); 
} 

こんにちは、私はちょうど$ valのようにモデル化する変数$ IDを渡します。しかし、結果は 'where句'の '$ val'という未知の列です。 SELECT * FROM student WHERE FIND_IN_SET($ val、classesID)。私は渡すパラメータが間違っていると思います。親切にも、私に正しいコードを教えてください。事前

+0

'from(student)'は私には疑わしいと思われます。それは 'from( 'student')'ではありませんか? – Alex

+0

サイド変数に$ val変数をエコーし​​ましたか?関数の内部に$ valがある場合、値はモデルに正常に渡されます。クエリ部分が間違っている可能性があります。 –

+0

はいエコーが働いています。エコー6が表示されたとき。だから私はこのコード$ this-> db-> select() - > from(student) - > where( 'FIND_IN_SET(6、classesID)');そのうまく動作します。しかし、$ valとして変数を宣言すると、その変数は機能しません。私は混乱しています –

答えて

4

あなたは、単一引用符( ')を使用している場合で

おかげで、あなたは

->where("FIND_IN_SET($val, classesID)"); 
+0

このコードを教えてくれてありがとうございます>ここで( 'FIND_IN_SET('。$ val。 '、classesID)');ありがとうございました –

-1

はこれを試してください( ")連結に

->where('FIND_IN_SET(' . $val . ', classesID)'); 

を使用するか、ダブルqouteを使用する必要があります。..変更$ id$ val

$ this-> data ['students'] = $ this-> student_m-> get_order_by_student_sattendance($ val);

+0

明らかに、$ idが与えられ、get_order_by_student_sattendanceは$ valをとります。 'where句'の中の未知の列 '$ val'は、変数としてではなく$ valを文字列として使用することが問題であることを示唆しています。 – Stefan

関連する問題