Forum
Merhaba arkadaşlar sitede bu şekilde oluşuyor menüler.alt menülerin ve menülerin hepsi her ürün sayfasında çıksın istiyorum sabit kalsın.yani yukarıda resimdeki menüler var birde alt menüleri. resimdeki kategorilerden birine tıklayınca içindeki menülere giriyor.genel kategorileri göstermiyor.ben alt kategorilere girilsede tüm ana kategori başlıkları ve alt başlıklarını her sayfada görmek istiyorum.normalde kodlarım aşağıdaki gibi. bunu nasıl düzeltirsem alt menülerle beraber sabit kalır.yardımınıza muhtacım arkadaşlar
kodlarım aşağıdakiler
<% set rs_kat = Server.CreateObject("adodb.recordset")
if koruma(request("kat")) <> "" then
set rssor = server.CreateObject("adodb.recordset")
sql_kat2 = "select * from kategori where ustkategori= "&koruma(request("kat"))&" order by kategori asc"
rssor.open sql_kat2, urunbag, 1, 3
if rssor.eof then
set rs_1 = server.CreateObject("adodb.recordset")
sql_rs = "select * from kategori where id="&koruma(request("kat"))
rs_1.open sql_rs, urunbag, 1, 3
katim = rs_1("ustkategori")
rs_1.close
sql_kat = "select * from kategori where ustkategori=" & katim & " order by kategori asc"
else
sql_kat = "select * from kategori where ustkategori= " & koruma(request("kat")) & " order by kategori asc"
end if
rssor.close
else
sql_kat = "select * from kategori where ustkategori=0 order by kategori asc"
end if
rs_kat.open sql_kat, urunbag,1,3
do while not rs_kat.eof %>
<a href="default.asp?sayfa=urunler&kat=<%= rs_kat("id") %>"><%= rs_kat("kategori") %></a>
<% rs_kat.movenext:loop
rs_kat.close %>
Sayın Yusuf Bey;
Yanış anlamadıysam her sayfada aşağıdaki gibi olacak değilmi?
MENÜ
ÜST MENÜ
ALT MENÜ
üstmenü 1
--alt menü 1
--alt menü 2
üst menü 2
-alt menü 3
--alt menü 4
ilk önce üst kategorileri çağırmalısın ve onların ust_kat_id diye bir kolonu olmalı üst kategorilere hep 0 değeri vermelisin.
set rs = server.CreateObject("adodb.recordset")
sql_kat = "select * from kategori where ust_kadt_id = 0 order by kategori asc"
rs.open sql_kat, urunbag, 1, 3
if not rs.eof then
daha sonra üst kategorilerin ilkini yazdır.
do while not rs.eof
<a href="default.asp?sayfa=urunler&kat=<%= rs("id") %>"><%= rs("kategori") %></a>
rs.movenext:loop
bunu yazdırdıktan sonra hemen alt kategorilerini yazdır. Üst kategori id sini de rs("id") şeklinde alıyoruz.
set rsalt = server.CreateObject("adodb.recordset")
sql_akat = "select * from kategori where ust_kadt_id = '" & rs("id") & "'order by kategori asc"
rsalt.open sql_akat, urunbag, 1, 3
if not rsalt.eof then
do while not rsalt.eof
<a href="default.asp?sayfa=urunler&kat=<%= rsalt("id") %>"><%= rs("kategori") %></a>
rsalt.movenext:loop
end if
rsalt.close
end if
rs.close
Bu kodları kendine göre düzenlemelisin. Direk koyduğunda çalışmaz. Burada ne kadar üst kategori varsa o kadar bağlantı açıyoruz. Bu sitenin çalışmasını biraz olsun yavaşlatır. Eğer kullandığın database mssql ise bunu JOIN ile tabloyu birleştirip veriyi çektirmen daha sağlılık olur. Ama ziyaretçi sayısı düşük siteler için sorun olmaz mdb de ben yılalrca kullandım. No Problem!.
<% set rs_kat = Server.CreateObject("adodb.recordset")
if koruma(request("kat")) <> "" then
set rssor = server.CreateObject("adodb.recordset")
sql_kat2 = "select * from kategori where ustkategori= "&koruma(request("kat"))&" order by kategori asc"
rssor.open sql_kat2, urunbag, 1, 3
if rssor.eof then
set rs_1 = server.CreateObject("adodb.recordset")
sql_rs = "select * from kategori where id="&koruma(request("kat"))
rs_1.open sql_rs, urunbag, 1, 3
katim = rs_1("ustkategori")
rs_1.close
sql_kat = "select * from kategori where ustkategori=" & katim & " order by kategori asc"
else
sql_kat = "select * from kategori where ustkategori= " & koruma(request("kat")) & " order by kategori asc"
end if
rssor.close
else
sql_kat = "select * from kategori where ustkategori=0 order by kategori asc"
end if
rs_kat.open sql_kat, urunbag,1,3
do while not rs_kat.eof %>
<a href="default.asp?sayfa=urunler&kat=<%= rs_kat("id") %>"><%= rs_kat("kategori") %></a>
<% rs_kat.movenext:loop
rs_kat.close %>