2016-05-19 5 views
1

何らかの理由でCodeigniterでSQLのクエリが行数に基づいてオブジェクト配列の繰り返し複製を返しています。私のSQLクエリを直接phpMyAdminに入れれば、正しい結果が返されます。そして、コードは、私が正常に動作する別のコール関数とほぼ同じであると付け加えるべきです。Codeigniter SQL同じオブジェクトを繰り返し返す

私はとても長い間自分のコードを見つめただけで盲目になったのですか?

更新:私のSQL結果が既に間違っているため、私は自分のコードを$ queryの操作に含めていません。

結果

CI_DB_mysqli_result Object 

(
    [conn_id] => mysqli Object 
    (
     // Information 
      (
      ) 

     //Information 
    ) 

[result_id] => mysqli_result Object 
    (
     [current_field] => 0 
     [field_count] => 4 
     [lengths] => 
     [num_rows] => 2 
     [type] => 0 
    ) 

[result_array] => Array 
    (
    ) 

[result_object] => Array 
    (
     [0] => stdClass Object 
      (
       [id] => 1594 
       [user_id] => 102 
      ) 

     [1] => stdClass Object 
      (
       [id] => 1279 
       [user_id] => 102 
      ) 
    ) 

[custom_result_object] => Array 
    (
    ) 

[current_row] => 0 
[num_rows] => 
[row_data] => 
) 
1 

CI_DB_mysqli_result Object 
(
    [conn_id] => mysqli Object 
    (
     // Information 
      (
      ) 

     //Information 
    ) 

[result_id] => mysqli_result Object 
    (
     [current_field] => 0 
     [field_count] => 4 
     [lengths] => 
     [num_rows] => 2 
     [type] => 0 
    ) 


[result_array] => Array 
    (
    ) 

[result_object] => Array 
    (
     [0] => stdClass Object 
      (
       [id] => 1594 
       [user_id] => 102 
      ) 

     [1] => stdClass Object 
      (
       [id] => 1279 
       [user_id] => 102 
      ) 


    ) 

[custom_result_object] => Array 
    (
    ) 

[current_row] => 0 
[num_rows] => 
[row_data] => 
) 
1 

コード

function data($update_id) { 
     $query = $this->db->query(' 
     SELECT * 
     FROM `list` 
     JOIN `tasks` ON list.id = tasks.list_id 
     WHERE (tasks.date < \' 2016-03-19 \' AND tasks.list_id = '$update_id') 
     ORDER BY `tasks`.`date` DESC 
     '); 
     return $query; 
    } 

そして、私は上記の結果を得ます。私のコードにはループもありません。ループがどこから来るのかわかりません...

私はあなたの助けに感謝します。

+0

私はあなたが正しくあなたの結果を2回得るのではないと理解していますか? この場合、コントローラはこの機能を2回呼び出すか、2回呼び出されます。 – sintakonte

+0

**どのように表示されているのですか?それは '$ query'のvar_dumpですか? – DFriend

+0

コントローラは単に$ result = $ this-> mdl_lists-> data($ update_id)を使ってコントローラを呼び出します。単純にprint_r($ result) –

答えて

0

return $ query-> result();返信の代わりに$クエリ

+0

はい、最終結果を得るためにresult()をループする必要があることは分かります。しかし、2つのオブジェクト配列を返すので、$ query-> result()は正常に動作しません。 SQLの結果が既に間違っているので、私は$クエリの操作を含めていません。 –

+0

return $ query-> row()または$ query-> array_result()を返す –

+0

私はあなたが私の問題を誤解していると思います。私は間違った結果を操作する方法を尋ねていません、なぜ私は最初に間違った結果を得ているのか、それを修正する方法を尋ねています。私はそれを動作させるためにそれを操作する方法があると確信していますが、それは根本的な問題を解決しません。 –

関連する問題