0

私は一般的にコーディングに比較的慣れていません。CSの1年生とそのすべてです。PHPを使用して、学校のクラスのカテゴリのリストと各カテゴリ内の課題の投稿のリストを表示しています。必要な出力は次のようになります。

CATEGORY 1
-Assign Post 1
-Assign Post 2

CATEGORY 2
-Assign Post 0

joinを使用すると、すべての割り当て投稿が取得されるため、部分的な機能が提供されますが、データをループして投稿すると、カテゴリタイトルが複数回投稿されます。次にgroup_byを使用してみましたが、カテゴリごとに1つの投稿しか投稿されていません。

すべてのコードを投稿するのではなく、dbクエリだけを投稿します。問題があると思われる場合は、他のコードを喜んで投稿します。

//Select our classes, and get assignments from each class
$this->db->select('*');
$this->db->from('categories');
$this->db->join('assignments', 'categories.cat_id = assignments.assign_cat_id');
$this->db->group_by("cat_id"); 

//Return the classes and assignments in an array
$query = $this->db->get();
return $query->result_array();

トリッキーじゃないですか?もちろんどんな助けでもありがたいです:)。

アップデート

group_concatが割り当て名を投稿することを理解したので、結果を展開できます。これが唯一の方法ですか、それともフレンドリーな配列で投稿する方法がありますか。私が尋ねる唯一の理由は、これがデータを分解しているビューファイルに不要なコードを追加すると感じていることです。

ありがとうございました!

4

1 に答える 1

0

group byを使用しないでください...カテゴリIDで並べ替えを使用し、データの配列を表示/準備している間、カテゴリごとにレコードをクラブ化できます。単一のSQLでこれを達成することはできません。

于 2012-05-31T04:43:32.760 に答える