Hocalarım teşekkür ederim de bu veritabanı ve tablolar birbirine girince benim kafam biraz karışıyor da, ben şöyle anladım yada şöyle fikir yürüttüm yazdıklarınızdan doğrumudur?
1. input parent'i 0 olan bir input olacak, eğer parent'i sıfırsa yada eklenen herhangi bir inputun parent'i 0'sa o input başlık inputu olacak.
parent'i örneğin 1 olan inputlar, bu inputun altında olacak.
Tamamdır buraya kadar her şey tamam.
Js ile bu yapıyı kurabilirim sanırım.
Veritabanına da parent'id si 0 olanları başlıklar tablosuna, 0 olmayanları subbaşlıklar tablosuna attım diyelim.
- input 1 parent 0
- input 1 parent 1
- input 2 parent 1
- input 2 parent 0
- input 3 parent 0
- input 1 parent 3
- input 2 parent 3
yapısı kuruluyor sanırım anladım.
teşekkür ederim sorum olursa konuyu güncellerim sağolun
/// GÜNCELLEME
Arkadaşlar peki bunu geri çekerken nasıl çekeceğiz?
2 tablomuz olduğunu düşünelim maksimum 2 alt aşağı gidiyor olalım.
Çekerken bir başlığın alt başlığı olup olmadığını sürekli sorgulamam gerekir değil mi?
Mesela;
phpde select sorgusu ile çekiyorum diyelim
basliklardan çektim tüm başlıkları, her çekim sırasında 1 başlığı çekince birde o başlığa ait sub varmı diye mi çektireceğim? yoksa bunun daha kolay bir yolu varmıdır?
select baslik, parent from tablo where id=3 or parent=3;
şu şekilde çekersiniz
baslik | parent
deneme | 0
altbaslik | 3
altasdas | 3
gibi bir sonuç döner
eğer 2 den fazla, belirsiz sayıda alt olacaksa recursive sql sorgusu veya window function ları incelemeniz gerekli
veya php'de daha basit ypaabilirsiniz:
function baslikgetir($id){
// sql'den çek. yukarıdaki verdiğim sorguya benzer kullanın.
// dönecek değerler: id, baslik, parent
while($sonuc){
if($sonuc['id'] == $id){
echo "başlık: " . $sonuc['baslik'];
}
baslikgetir($sonuc['id']);
}
}
gibi
bu mantığın kategori versiyonunu şöyle yaptım php ile
https://gist.github.com/sh4dowb/1af5...44760d8615d84c
tüm kateogrileri çekip php tarafında işliyor bu, belki fikir verir recursive fonksiyon kısmı