Bir Tablodan 2 Sütündaki Toplam Veri Sayısını Toplama
-
bir üyenin forumda yazdığı konu ve mesajları nasıl toplarım ? şimdi tek tek yazıyorum ama ben bunları toplamak istiyorum nasıl yapcam
selametle Allaha emanet olun
-
böyle birşeyi sorabilmen için öncelikle tablo yapını buraya yaman lazım. bunu düşünememişsen programlama işini bırak.
-
hoca genelde asp da veri çekme konusunda tablo türü fark etmiyor ki. asp, access , tablo adı : sorular
-
her üyeye bir id ver ve mesajlarına yazarken id leride ekle sonra diyelim x üyesinin id si 5
id si 5 olan konuları ve mesajları listelemek isteyeceksin oda record.count ile falan yaparsın sql dede count ile yapacaksın
farklı bişey olsun dersen kullanıcı her msg yazdığında kendi mesajlarını bir artır sildiğinde bir eksilt böylece tek bir kayıt çekmiş olursun.
scripti bir yerlere uplıad et bakalım kolay yoluna
-
Hoca konu ve mesaj tablonda, konuyu yazan, mesajı yazan adamların nickleri ya da id'leri kayıtlı değil mi?Kayıtlı :)
Sen mesela konu okunurken o mesajı yazan adamın toplam konu açma+mesaj yazma sayısını göstereceksin..
mesela rs diye bi recordset ile konu ve o konuya ait mesajları gösteriyorsun..
rs("yazan") diye bir değişkenin var, bu mesajı yazan adama ait..Şimdi;
(Dd'yi baglanti diye bi değişken ile açtığını varsayarak)
set say1 = baglanti.execute("SELECT COUNT(id) from mesajlar where yazan=' " & rs("yazan") & " ' ")
set say2 = baglanti.execute("SELECT COUNT(id) from Konular where konu_acan=' " & rs("yazan") & " ' ")
Kişinin toplam mesaj sayısı : say1(0) + say2(0) -
"bir tablodan 2 sütündaki toplam veri sayısını toplama" demişsin, acaba yanlış mı anladım diye, diğer anladığımın da cevabını yazıyorum..
"Tablo" diye bir tablon var, içindeki iki tane sütundaki toplam kayıt sayısını istiyorsun..Eğer iki sütunda boş geçilemez değer ise
set say = baglanti.execute("SELECT Count(id) from tablo")
toplam veri : say(0)
Ama o sütunlar boş geçilebilir değerler ise, yani adam isterse o bilgiyi yazmaz diyorsan
set say1 = baglanti.execute("SELECT Count(sutun1) from tablo")
set say2 = baglanti.execute("SELECT Count(sutun2) from tablo")
2 sütundaki toplam kayıt : say1(0) + say2(0) -
alp hocam sağol aslında sallıyarak buldum :)
cvplar = cvplar.recordcount
msjlar = msjlar.recordcounttop= cvplar + msjlar
bu kod ile yaptım sonra da <%=top%> diye yazdırdım oldu :)
alp hocam ilgilendiğin için çok sağol buzul sende tabi targext sende :) -
Hocam eğer konu okunurken adamın mesaj sayısını göstereceksen senin yazdığın mantıklı, benim dediklerimi yapıp seçilen ve sayılan bir şeyi tekrar saymak saçma, orada haklısın amma ve lakin;
Adamın profilinde olsun, istatistiklerde olsun kişinin toplam mesaj sayısını yazdırmak istersen, benim dediğimi uygulaman en mantıklısı..Forum dışında Select from deyip kayıtları seçmene gerek yok, nasılsa göstermeyeceksin sana sayısı lazım..
Onun için Select COUNT deyip sadece sayacaksın..Sayma işlemi, seçme işleminden daha hızlıdır, bu yüzden performans açısından forum dışında benim dediğim gibi yapman en iyisi..Ama forumda konuyu gösterirken zaten seçtiğin için de tekrar saymana gerek yok, seçilmiş şeyin sayısını vs.recordcount şeklinde, yani senin hallettiğin gibi göstermen de en iyisi..
-
hımm anladım hocam şişmdi ben şöle yaptım soruyu yazan bi üyenin nick ini alıp sorular tablosunda o nicke ait kaç mesaj var onu saydırıyorum böle yaptım.
SQL = "SELECT * FROM sorular where kimden = '"&soru("kimden")&"' order by soruid desc"
msjlar.Open SQLcumlesi, BAGLANTI, 1, 3
msjlar = msjlar.recordcountşu kodu kullandım meseLa
-
İşte onu yapmasan daha iyi..O da olur elbette ama
set say1 = BAGLANTI.execute("SELECT COUNT(id) from sorular where kimden = '"&soru("kimden")&"'")
set say2 = BAGLANTI.execute("SELECT COUNT(id) from msjlar where kimden = '"&soru("kimden")&"'")say1(0)+say2(0) da adamın toplam foruma katkısı..
Sen mesajları ve konuyu gösteren recordsetinde sadece bir kişiye ait değil, bir konuya ait mesajları seçtiğin için ordan elde edeceğin recordount sonucu sana o konudaki msj sayısını döndürür..
Sen her ihtimalde mesajı yazan kişinin adını ya da id'sini her neyse onu alıp tekrar sorguya sokacaksın..Sadece kayıt sayısı lazım sana boşuna tüm kayıtları seçme diye execute metoduyla sayman daha iyi..
Yani senin yaptığın şu: Konuyu göstermek için bir recordset açıyorsun, sonra o konuya ait mesajları göstermek için bir recordset açıyorsun, sonra adamın açtığı toplam konu için recordset ve adamın yazdığı toplam cevap için recordset açıyorsun..
4 farklı recordset oluyor yani..Bi hata vermez bi sorun çıkmaz ama, sadece saymak için onca kaydı seçmek sonra recordcount demek mantıklı değil..
Sen konuyu ve o konuya ait mesajları göstermek için 2 tane recordset aç, mesaj ve konu açma sayısını göstermek için de execute ile say, sonuçları topla (yukarda yazdığım gibi..)
En mantıklısı bu..Şimdi bu recordcount olayı da zaten seçilmiş olan kayırtların kaç tane olduğunu göstermek için kullanılıyor..
Konuda kaç cevap olduğunu göstermek için mesela direk recordcount ile gösterirsin, tekrar saymana gerek yok -
dediklerini yaptım hocam, sağolasın , sitemin daha hızlı olduğunu hissedebiliyorum :D:D