• 07-06-2013, 23:38:43
    #1


    Yukarıdaki gördüğünüz mysql deki iki tablo.
    1. tablo da konuları tutuyorum.
    2. tablo da mesajları tutuyorum.

    Konulara göre mesaj sayılarına ulaşmak istiyorum örneğin ;
    konuid 2 olanın mesaj sayısı ve onun altında olanların mesaj sayılarını toplayıp bana toplam mesaj sayısını verecek php foksiyon veya sql sorguyu arıyorum.

    Sadece konuid 2 olanı bula biliyorum.
    Ancak konuid 2 olanın altından gelen konuların ne kadar oldugunu bilmediğim için bir türlü nasıl bir döngü nasıl bir fonksyon yazacagımı çözemedim :S

    Yardımcı olan arkadaşlara şimdiden teşekkür edrim .
  • 08-06-2013, 01:20:36
    #2
    bunda çözemeyecek ne var? konuları bulmak için yaptığın sorguyu mesajları bulmak için de aynen kullanacaksın.

    bir konuya ait mesajları bulmak için 2.tablodan konuid'ye göre sorgulama yapacaksın.
  • 08-06-2013, 02:40:23
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şurada benzer bir sorum olmuştu. 1. benim yazdığım mesaj yardımcı olabilir.

    https://www.r10.net/php/1040860-gelis...eri-almak.html

    Ama yazılan mesajlar, sayacı bu şekilde değil de, tabloda yeni bir sütunla yapmamı önerdi. yani eklenen yada her silinen mesaj için 1 artırılan yada azaltılan bir sütun.
  • 08-06-2013, 03:39:01
    #4
    dalyanliyiz adlı üyeden alıntı: mesajı görüntüle


    Yukarıdaki gördüğünüz mysql deki iki tablo.
    1. tablo da konuları tutuyorum.
    2. tablo da mesajları tutuyorum.

    Konulara göre mesaj sayılarına ulaşmak istiyorum örneğin ;
    konuid 2 olanın mesaj sayısı ve onun altında olanların mesaj sayılarını toplayıp bana toplam mesaj sayısını verecek php foksiyon veya sql sorguyu arıyorum.

    Sadece konuid 2 olanı bula biliyorum.
    Ancak konuid 2 olanın altından gelen konuların ne kadar oldugunu bilmediğim için bir türlü nasıl bir döngü nasıl bir fonksyon yazacagımı çözemedim :S

    Yardımcı olan arkadaşlara şimdiden teşekkür edrim .
    1.tablodan konu id aldigini ve $konuid değişkenine atatığını varsayalım ve 2.tablo adı mesajlar olsun.

    echo mysql_result(mysql_query("select count(*) from mesajlar where konuid = '$konuid'"),0);
    bu mysql sorgusu sayesinde mesajlar tablosunda değişkene aktardığımız konu idsi veritabanındaki kaç veride geçmiş count ile onu saydırıp ekrana bastırıyoruz.
  • 08-06-2013, 10:08:14
    #5
    PamukBilisim adlı üyeden alıntı: mesajı görüntüle
    1.tablodan konu id aldigini ve $konuid değişkenine atatığını varsayalım ve 2.tablo adı mesajlar olsun.

    echo mysql_result(mysql_query("select count(*) from mesajlar where konuid = '$konuid'"),0);
    bu mysql sorgusu sayesinde mesajlar tablosunda değişkene aktardığımız konu idsi veritabanındaki kaç veride geçmiş count ile onu saydırıp ekrana bastırıyoruz.
    biomooj adlı üyeden alıntı: mesajı görüntüle
    bunda çözemeyecek ne var? konuları bulmak için yaptığın sorguyu mesajları bulmak için de aynen kullanacaksın.

    bir konuya ait mesajları bulmak için 2.tablodan konuid'ye göre sorgulama yapacaksın.
    PamukBilisim ve biomooj ya siz benim dediğimi anlamadınız. Yada siz hiç birşey bilmiyorsunuz. Burada sizin dediğiniz sorgularu ben yazmaya başlayalı 10 sene oldu buradaki sorgu farklı anlamak zor çözmekte zor.

    erginkeles adlı üyeden alıntı: mesajı görüntüle
    Şurada benzer bir sorum olmuştu. 1. benim yazdığım mesaj yardımcı olabilir.

    https://www.r10.net/php/1040860-gelis...eri-almak.html
    [CODE][HTML]
    
    Ama yazılan mesajlar, sayacı bu şekilde değil de, tabloda yeni bir sütunla
    [/CODE][/HTML]yapmamı önerdi. yani eklenen yada her silinen mesaj için 1 artırılan yada azaltılan bir sütun.
    erginkeles yeni bir sütünde degilde yeni bir tabloda yapmaya karar verdim bilirsin belki tetikleyiciler/tirgger kullandıım herşey güzel konu ekledndiğinde tetikleyici çalışıyor ve 1 arttırıyor ancak bir yerde sıkıntı çıkıyor.

    bu tetikleme her update oldugunda çalışıyor ve en alttaki konulardan en üsteki konuların mesaj sayısına kadar çıkıyor ama en sonunda durması gerekiyor o durdurmayı bulamadım :S

    O yüzden sorgu veya function arıyorum :S



    Şunu eklemek istiyorum :

    sol tarafa alt konularında dahil toplam mesaj sayısını yazdım.
    sağ tarafa alt konuların id'lerini ve kendi mesaj saılarını yazdım .

    konuid 1 olanın 0 mesajı var. konu1'in altından gelen konu mesaj yok.
    konuid 2 olanın 12 mesajı var. konu2'in altından gelen 4 ile 5 var. 2 tane kendi mesajı var.
    konuid 3 olanın 1 mesajı var. konu3'in altından gelen 11 var.kendi mesajı yok.
    konuid 4 olanın 2 mesajı var. konu4'in altından gelen yok. 2 kendi mesajı var.
    konuid 5 olanın 7 mesajı var. konu5'in altından gelen 6 ile 7 var.kendi mesajı yok.
    konuid 6 olanın 7 mesajı var. konu6'in altından gelen 8,9,10 var. kendi mesajı yok.
    konuid 7 olanın 0 mesajı var. konu7'in altından gelen yok. kendi mesajı yok.
    konuid 8 olanın 2 mesajı var
    konuid 9 olanın 3 mesajı var
    konuid 10 olanın 3 mesajı var
    konuid 11 olanın 1 mesajı var
    konuid 12 olanın 1 mesajı var
    konuid 13 olanın 2 mesajı var


    belki burada daha açıkça olmuştur :S
  • 08-06-2013, 17:23:11
    #6
    dalyanliyiz adlı üyeden alıntı: mesajı görüntüle
    PamukBilisim ve biomooj ya siz benim dediğimi anlamadınız. Yada siz hiç birşey bilmiyorsunuz. Burada sizin dediğiniz sorgularu ben yazmaya başlayalı 10 sene oldu buradaki sorgu farklı anlamak zor çözmekte zor.



    erginkeles yeni bir sütünde degilde yeni bir tabloda yapmaya karar verdim bilirsin belki tetikleyiciler/tirgger kullandıım herşey güzel konu ekledndiğinde tetikleyici çalışıyor ve 1 arttırıyor ancak bir yerde sıkıntı çıkıyor.

    bu tetikleme her update oldugunda çalışıyor ve en alttaki konulardan en üsteki konuların mesaj sayısına kadar çıkıyor ama en sonunda durması gerekiyor o durdurmayı bulamadım :S

    O yüzden sorgu veya function arıyorum :S



    Şunu eklemek istiyorum :

    sol tarafa alt konularında dahil toplam mesaj sayısını yazdım.
    sağ tarafa alt konuların id'lerini ve kendi mesaj saılarını yazdım .

    konuid 1 olanın 0 mesajı var. konu1'in altından gelen konu mesaj yok.
    konuid 2 olanın 12 mesajı var. konu2'in altından gelen 4 ile 5 var. 2 tane kendi mesajı var.
    konuid 3 olanın 1 mesajı var. konu3'in altından gelen 11 var.kendi mesajı yok.
    konuid 4 olanın 2 mesajı var. konu4'in altından gelen yok. 2 kendi mesajı var.
    konuid 5 olanın 7 mesajı var. konu5'in altından gelen 6 ile 7 var.kendi mesajı yok.
    konuid 6 olanın 7 mesajı var. konu6'in altından gelen 8,9,10 var. kendi mesajı yok.
    konuid 7 olanın 0 mesajı var. konu7'in altından gelen yok. kendi mesajı yok.
    konuid 8 olanın 2 mesajı var
    konuid 9 olanın 3 mesajı var
    konuid 10 olanın 3 mesajı var
    konuid 11 olanın 1 mesajı var
    konuid 12 olanın 1 mesajı var
    konuid 13 olanın 2 mesajı var


    belki burada daha açıkça olmuştur :S
    oluşturduğun mysql tablosundan istediğin sorguları yapamıyorsan bu senin eksikliğindir. gelip çocuklar gibi '10 senedir ben bu sorguları yapıyorum' şeklinde çok bilmiş havalarına girmene gerek yok, bilmiyorsan bilmiyorsundur işte bu kadar basit. burada yardımcı olmaya çalıştık sana. ki, son mesajından anladığım kadarıyla yapmaya çalıştığın şey benim anladığımdan farklı. o da konuda doğru düzgün ifade edememenden kaynaklandı.

    eğer doğru anladıysam ustkonuid'de işin içinde var bu durumda o tablo yapısını da koysaydın ve açıklamalarındaki tüm ifadeler tablo isimlerine göre olsaydı daha iyi olurdu.

    anladığıma göre şöyle bi sistemin var;

    aaa: aşk konusu
    bbb: -aşk hakkında birinci başlık
    ccc: --birinci mesaj
    ccc: --ikinci mesaj
    bbb: -aşk hakkında ikinci başlık
    ...
    ..
    .

    bu durumda, 'aşk konusu' hakkındaki mesaj sayısını bulmak için, bbb tablosundan eşleşen id'leri alacaksın. aldığın her bir id için döngü içinde eşleşen mesaj sayısını alacaksın, bu durumda dönen her mesaj sayısı ile öncekini toplayıp sonraki döngüye aktarman gerekiyor.
  • 13-06-2013, 15:09:52
    #7
    biomooj adlı üyeden alıntı: mesajı görüntüle
    oluşturduğun mysql tablosundan istediğin sorguları yapamıyorsan bu senin eksikliğindir. gelip çocuklar gibi '10 senedir ben bu sorguları yapıyorum' şeklinde çok bilmiş havalarına girmene gerek yok, bilmiyorsan bilmiyorsundur işte bu kadar basit. burada yardımcı olmaya çalıştık sana. ki, son mesajından anladığım kadarıyla yapmaya çalıştığın şey benim anladığımdan farklı. o da konuda doğru düzgün ifade edememenden kaynaklandı.

    eğer doğru anladıysam ustkonuid'de işin içinde var bu durumda o tablo yapısını da koysaydın ve açıklamalarındaki tüm ifadeler tablo isimlerine göre olsaydı daha iyi olurdu.

    anladığıma göre şöyle bi sistemin var;

    aaa: aşk konusu
    bbb: -aşk hakkında birinci başlık
    ccc: --birinci mesaj
    ccc: --ikinci mesaj
    bbb: -aşk hakkında ikinci başlık
    ...
    ..
    .

    bu durumda, 'aşk konusu' hakkındaki mesaj sayısını bulmak için, bbb tablosundan eşleşen id'leri alacaksın. aldığın her bir id için döngü içinde eşleşen mesaj sayısını alacaksın, bu durumda dönen her mesaj sayısı ile öncekini toplayıp sonraki döngüye aktarman gerekiyor.
    Ben bilmişlik taslamıyorum bunda ne var ki diyerek sen öyle bir tepki gösterdin bende onları biliyorum demek istedim yanlış anlaşılmasını istemem. Teşekkür ederim yardımların için. Ama malesef son yazdığın gibi de değil bunu nasıl anlatacağımı bir türlü çıkaramadım ve bu yüzdende kimseye anlatamıyorum derdimi :S
  • 13-06-2013, 17:08:35
    #8
    mysql_result(mysql_query("select count(mesajlar) from mesajlar where konuid = '$konuid' or konuid = '$ustkonuid'"),0);
    Şeklinde denermisin?
  • 13-06-2013, 18:12:18
    #9
    FqhTR adlı üyeden alıntı: mesajı görüntüle
    mysql_result(mysql_query("select count(mesajlar) from mesajlar where konuid = '$konuid' or konuid = '$ustkonuid'"),0);
    Şeklinde denermisin?
    Böyle sadece o id'nin ve üst id'nin mesaj sayısını görebilirsin.
    Senin yazdığına göre ben örneğin ; id si 5 olanın mesajına ve bunun da üst id'si 2 olanın mesajına ulaşırım.
    Ama benim istediğim id'si 1 olanın alttında olan alt konuların mesajlarıyla kaç tane mesajı var.