2016-09-28 1 views
0

私のモデルでは、私はデータベースから連想配列を得るPHPモデルを書こうとしています。しかし、私はこれにどのように接近するのかはよく分かりません。 だから私は、このSQLクエリを実行した後:codeigniterを持つデータベースからの連想配列

SELECT balance_events.weight,balance_events.added_date, 
     balance_entries.mid FROM balance_events, balance_entries 
WHERE balance_entries.added_date BETWEEN '2016-08-02' AND '2016-08-03' 
    AND balance_entries.ptid =12 
    AND balance_entries.beid = balance_events.id 

を私はこのテーブルを取得します:

enter image description here

そして、私はそれがこのようになりますことをasociative配列を抽出したい、そのテーブルから:

何回の 'mid'=>numbermidがテーブルで見つけることができることを
count = ['13'=>1, '6'=>4, '16'=>3, '4'=>3] 

。 ex。 mid '13'=>1あなたはそれが一度しか見つかりません。

私はSQL COUNT関数を使用する必要があると思いますが、どのようにしてこのすべてをcodeigniterのPHPモデルで集計できますか?私はコントローラとビューを設定する方法を知っていますが、私は実際に私が望む配列を得る実際のPHPモデルを行う方法を知らない。

+0

あなたのモデルにクエリを書きたいですか? – devpro

+0

はい、コントローラで送信した実際のデータを処理してから、表示しますか? – Rommel

+0

私が間違っている場合は、1)CIモデルなどでこのクエリを変換したい、2)期待した結果を修正してください。文字列変換 ファイル名の配列:ビュー/ test.phpを 行番号:12 バックトレース: ファイル: メッセージに注意してください:LASTでは、探検 'GROUP BY' – devpro

答えて

0

は、私はあなたがSQLでこれを作成しますかどうかはわかりませんが、あなたがPHPをタグ付けするので、私はこれを行うだろう機能を書いた

$result = $this->db->select('balance_events.weight,balance_events.added_date,COUNT(balance_entries.mid) as mid_count') 
        ->from('balance_events, balance_entries') 
        ->where('balance_entries.added_date BETWEEN "2016-08-02" AND "2016-08-03" ') 
        ->where('balance_entries.ptid','12') 
        ->where('balance_entries.beid','balance_events.id') 
        ->group_by('balance_entries.mid') 
        ->get(); 

return $result->result_array(); 
+0

A PHPエラーが 重要度を発生しました/var/www/html/test/application/views/test.php ライン:12 機能:_error_handler ファイル:/var/www/html/test/application/controllers/Test.php ライン:9 機能:表示 ファイル: /var/www/html/test/index.php 行:315 機能:require_once – Rommel

+0

これは私が見ると、私はちょうどコントローラからvarをエコーするというエラーです。 – Rommel

+0

echoの代わりにprint_r()を使用する必要があります – kc1994

0

、このクエリはあなたを助けるかもしれない試してみてください。

<?php 
    $query = array(array("mid"=>13), array("mid"=>2), array("mid"=>13), array("mid" =>6), array("mid" => 13), array("mid" => 6)); 

    function createMidArray($queryResult){ 
     $returnArray = array(); 
     foreach ($queryResult as $qr){ 
      $returnArray[$qr['mid']]++; 
     } 
    return $returnArray; 
} 

    print_r(createMidArray($query)); 

?> 

これの出力は、(2次元配列である)私の、入力された$クエリまで一致してArray ([13] => 3 [2] => 1 [6] => 2)ました。私はあなたのクエリの出力が同様の配列に格納されているが、より多くのデータとキーを持つことを期待しています

+0

OPがクエリを必要とする... – devpro

+0

OPにクエリがあります。彼が必要としているこの新しい配列を生成するために彼のクエリの結果を使用しています – IsThisJavascript

+0

質問から:*どのようにPHPモデルでcodeigniter?私は、コントロールとビューを設定する方法を知っていますが、私は実際に私に希望の配列を取得する実際のPHPモデルを行う方法がわかりません。* – devpro