Kategori listeleme deki sorunum.
Konu, 'ASP' kısmında Caylakkk tarafından paylaşıldı.
Caylakkk Yeni Üye
kategori listelemede bir sorunmum var belkide çok çok basit birşeydir ama ben bir çözüm bulamadım . sorunumu şöyle izah edeyim
veri tabanında 2 alan var kat_id, tanim (iki alanda metin)
forumumda içinde(yani tanim kısmında) xxxx geçenleri listele diyorum sorgu çalıştı ve listeleme başladı
kat_id , tanim
kat_id , tanim ....
fakat ben aslınta şu şekilde istiyorum takıldığım nokta şu listeleme yaparken kat_id 1 her kategori için 1 kere yazsın ama tanimlari sıralasın .
yani şu şekilde
sorgulama yaprken hangi kat_id in geleceğini bilmiyorum. yani 500 tane tanim satirim var her tanim satirindan once kat_id var. sorgulamayı yaparken kat_id ye baktırmıyorum tanim içinde şu kelime geçiyorsa getir yaz diyorum. ama bahsettiğim gibi kat_id 1 defa yazılacak ve bu kat_id e bağlı içinde aradğım harf/kelime/sayı geçen kayıtlar altına sıralanacak. ve sonraki kayıta geçip bu işlem devam edecek.
şimdiden bu uzun soruyu okumuş olanlara ve özelikle cevap verenlere sonusz teşekurler.
kat_id in metin olmasının anlamı nedir id genelde otomatik artan sayı olur.
bu dediğin işlemi en iyi yapabilmen için bir örnek sayfa vereyim indirip ordan bak ve mantığını kendi kodlarına uygula.
http://www.snitz.com/ dan bedava olan forum kodlarını indir sistemine kur admin alanınan gir orda Category/Forum Order Configuration linkine tıkla bahsettiğin şekilde bir sayfa gelecektir. bu sayfa admin_config_order.asp dosyası içini açıp veritabanıyla birlikte incele... mantığını anlayacaksın...
Snitz biraz karışık gibidir ancak bir kaç gün kurcalarsan çok şey öğrenebilirsin.
merakli demiş ki: ↑
kat_id neden sayi değil; kat_id a1 a5 de yazabiliyorum yazmam gerekebiliyor bazı durumlarda . illaki 2 farklı id calişmak istemedim. bu nedenle kat id numara değil. ama bunun bi sorun teşkil edeceğini sanmıyorum. max 2 karakterli turkçe karakter içermeyen bşluk yada özel akrakter içermeyen bi satir.
ayrıca bu snitz formu inceleyen olduysa yada farklı bir yolla soruma cevap verebilecek arkadaş var ise lütfen yardımcı olun tekrar teşekurler saygılar.
yokmu cevap? kimse bu konuda bilgili değilmi ?
CodeMania Müslüm Yıldırım
böyle bir kategorileme için 2 kez sorgu çalıştırmalısın. daha doğrusu 2 farklı sorgu çalıştırmalısın. create view yöntemini kullanabilirsin ancak doğru bir döngüyle bunada gerek kalmayacaktır. 2 sorgudan kastım şu dur. önce likle ayrıştırma yapmamız lazım değilmi? 1 kez id sıralatmak istiyoruz ve bu idlere bağlı içeriğinde x sözcük kelime yada jarf geçen kayıtları listeyeleceğiz.? o zaman şunu yapmalıyız ilk önce içinde su geçen kayıtları bul id lerini al bir köşede tut. bunuda şöyle bir sorgu ile yapabiliriz
Select Distinct kat_id from tabloadi where tanim like '%" &ara& "%'"
bu sorguda elimizdeki değer kat_id ama bu kat_id suna bağlı kalınarak bulundu= taniminda aradğımız kelimeler geçenler. ve distinct diyerek gelecek olan 10 tane ayni kat_id yi 1 kere tekrar etmesini sağladık
evet 1 sorgumuzu oluşturduk simdi yapacağımız işlem bir döngü oluşturmak
for i = rs.recordcount
sorgumuzun kayıt sayısı kadar bir döngüye girdik
dongu içindeyken bir sorgu daha oluşturuyoruz
"Select *  from tabloadi where kat_id='"& rs("kat_id") &"' and tanim Like'%" & ara & "%'"
bu sorguylada daha önce bulduğumuz id leri kullanarak fazla kayıtlardan ayıkladık. ama sunuda unutmadık tanim= aradığımız kelime diyerekte sadece idlerin ayıklanmasıyla kalmayan bir sorgu oluşturduk yani 44 nolu kat id nin 50 tane kayıdı var ise 50 sininde azılmasını önledik. bu 50 kayıttan sadece içeriğinde aradğımız kelime geçenleri ni bu idnin altına yazdırmış olduk. tabi bunuda yine bir döngüye girerek sağlayabilriz.
umarım yardımı olmuştur butür kategori soruları pek sorulmuyor nerdee işe yarar oda başka bir olay merak ettim böyle bir sorguyu nerede kullanacaksınız acaba bi portal yada forum sistemimi yazıyorsunuz?
Kategori-Alt Kategori-Listeleme sorunu
Aynı anda Kategori - Alt Kategori Listeleme
kategori ve alt kategori listeleme sorunu
Kategori, Alt Kategori Listeleme
Kategori ağacında Alt kategori listeleme yardımı