複雑なタイトルで申し訳ありません。
私はこのスキーマを持っています:
Categories Albums Photos
---------- ------- --------
id id id
name category_id album_id
これらのテーブルから、次のようなナビゲーション メニューを作成する必要があります。
Category1
album1
album2
Category2
album3
Category3
album4
これは簡単に作成できますが、ここでは、少なくとも 1 つの写真を含むアルバムと、少なくとも 1 つのアルバムを含むカテゴリのみを表示したいと考えています。どうすればいいですか?
編集:私はCodeigniterを使用していますが、今はこのようにしています:
コントローラーで、2 つの単純なクエリを使用して配列を作成します
$categories = $this->category->get_categories();
foreach ($categories as $category)
{
$data['categories'][$category->name] = $this->album->get_albums_by_category($category->id);
}
get_categories() クエリ:
function get_categories()
{
$this->db->select('*')->
from('categories');
return $this->db->get()->result();
}
そして get_albums のもの:
function get_albums_by_category($category_id)
{
// per stampare il nome dell'album nella lingua giusta
$lang = $this->lang->lang();
$name = $lang . '_name';
$this->db->select('id, ' . $name . ' AS name')
->from('albums')
->group_by('id')
->where('category_id', $category_id);
return $this->db->get()->result();
}
必要に応じて配列になるように、2 つのクエリを使用しました。