Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Kategoriyi ve alt kategoriyi aynı sql sorgusunda çağırmak


Pluton

Öne çıkan mesajlar

Selamlar şimdi bir üst kategori var birde bu kategoriye bağlı alt kategoriler var. Örnek;

-> Sağlık
--> Erkek sağlığı
--> Kadın sağlığı
--> Çocuk sağlısı
-> Spor
--> Basketbol
--> Futbol
--> Hentbol

v.s gibi bunlar aynı tabloda tutuluyor. "sub" sütunda değer 0 ise üst kategori alt kategori ise sub'da üst kategorinin ID 'si yer alıyor. Şimdi ben öyle bir sql sorgusu yapmalıyım ki tek sql ile bunları yukardaki gibi yazdırabileyim. Düşündüm aradım taradım ama bulamadım. Yardımcı olur musunuz?
Link to comment
Sosyal ağlarda paylaş


Select altkat.KategoriAdi,ustkat.KategoriAdi from Kategoriler as ustkat right join Kategoriler as altkat
on altkat.Sub = ustkat.sub

Sql Sorgusu bu Aynı tablo ıcınde FK varsa ısım degıstırerek join yapabılıyorsun..PhP bılmıyorum o konuda bır yorum yapamıyacagım..

Tabi Sen bu kategorileri menude falan kullancaksın sanırım..Bu sql sorgusu tam saglıklı olarak ısıne yaramaz..Web bu kategorileri getirmek ıcın sınırsız agac yapısını kullanman lazım.

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
MenuItem mi = new MenuItem();
mi.Text = "";
mi.Value = "Kategori";
Doldur(mi);
Menu1.Items.Add(mi);
Menu1.StaticDisplayLevels = 2;
}

private void Doldur(MenuItem mi)
{
SqlConnection cn = new SqlConnection("Data Source=.;Database=OrnekETicaret;Trusted_Connection=True");
SqlCommand cmd = new SqlCommand();
if (mi.Value == "Kategori" )
cmd.CommandText = "select * from Kategoriler where ParentID is NULL";
else
{
cmd.CommandText = "select * from Kategoriler where ParentID = @id";
cmd.Parameters.AddWithValue("@id", mi.Value);
}
cmd.Connection = cn;
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
MenuItem altmi = new MenuItem();
altmi.Text = dr.GetString(1);
altmi.Value = dr.GetInt32(0).ToString();
altmi.NavigateUrl = "~/Kategoriler.aspx?Id="+altmi.Value;
Doldur(altmi);
mi.ChildItems.Add(altmi);
}
dr.Close();
cn.Close();
}
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...