Kategorileri Göstermek
Merhaba arkadaşlar sizlere bir sorum olacak.
Tablolarım;
Kategoriler Tablom
id | kategoriadi olmak üzere iki sutundan oluşuyor.
Konular Tablom
id | konuadi | katid olmak üzere üç bölümden oluşuyor.
Konularımı kaydederken birden fazla kategoriyi seçtiriyorum ve veritabanıma kayıt ediyorum..
id | konuadi | katid
1 | deneme | 1,3,5,6
yukarıdaki gibi bir şekilde mysql tablomda duruyor. ben bir türlü
konuya girdiğimde kategorilerin isimlerini yazdıramıyorum.. sadece 1 id li kategorim gözüküyor.. diğerleri görünmüyor..
nasıl bir yol izlemeliyim baya araştırdım ama hep tek kategori üzerinden gösterim yapılmış... Codeignitır yapısını kullanıyorum.. yardımcı olabilirseniz sevinirim.
Modal kodlarım
public function kategoriler($id){
$result = $this
->db
->select('*')
->from('kategoriler')
->where('kategoriler.id',$id)
->join('konular','kategoriler.id=konular.katid')
->get()
->result();
return $result;
}
Controller kodlarım
$viewData->kategoricek = $this->konular_model->kategoriler($viewData->konular->katid);
ve view kodlarım
if (is_array($kategoricek[0]->katadi)) {
foreach ($kategoricek as $v){
echo $v->katadi;
}
}
Yetmez. Dediğim işleme ManyToMany ilişkisi deniyor. İnternete ManytoMany yazarsan daha fazla bilgi alabilirsin.
Şurada da senin tablo örneğini gösterip, böyle yapılmaz deniyor.
https://dzone.com/articles/how-to-handle-a-many-to-many-relationship-in-datab
Her sütun için değil. İlişkisel veritabanı kullanıyorsan tablolar arasında ilişki kullanmalısın. Senin dediğin gibi de yapabilirsin hem performans hem de kolaylık açısından kendine ziyet edersin.