• 24-02-2021, 16:35:53
    #1
    Merhaba Arkadaşlar,

    Şimdi bir oy sistemim var bu oy sisteminde 1 den 5 kadar yıldızlarla oy alıyorum. Şimdi oy ortalamasını alıp yıldız olarak nasıl gösteririm onu oturtamadım kafamda yardımcı olurmusunuz.

    Aşağıdaki gibi 3 yorum almış 3 ile aldığı oyu bölüp işleme almam gerekli ama bunu yıldızlarda nasıl gösteririm onu çözemedim.
  • 24-02-2021, 16:46:20
    #3
    Avg ile puanların tutulduğu sütunun ortalamasını alacaksınız sqlden.

    select avg(puan) from posts;

    Atadığınız değişkenin sonucunu if veya select case karar yapısı ile ister text ister image olarak yazdıracaksınız.
  • 24-02-2021, 16:57:26
    #4
    Genel Oy Kodlarım Aşağıdaki Gibi Buna Göre Nasıl bir işlem yapmam gerekli. Örnek 5 yorum var 3 yorum 5 diğerleri 2

    bunun ortalamasını alıp aşağıdaki oy kodlarına göre yıldızları nasıl göstermeliyim.

                                                            <i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>
                                                            <i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>
                                                            <i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>
                                                            <i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>
                                                            <i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>
  • 24-02-2021, 17:03:46
    #5
    for ile döngüye alıp saydırarak yazdırsam mantıklı olurmu ortalama oyu ? 4 oy var toplam oy 19 ortalama 4,75 yapıyor.

    Bunu Nasıl Gösterebilirim ?
  • 24-02-2021, 21:27:32
    #6
    Adalente adlı üyeden alıntı: mesajı görüntüle
    Merhaba Arkadaşlar,

    Şimdi bir oy sistemim var bu oy sisteminde 1 den 5 kadar yıldızlarla oy alıyorum. Şimdi oy ortalamasını alıp yıldız olarak nasıl gösteririm onu oturtamadım kafamda yardımcı olurmusunuz.

    Aşağıdaki gibi 3 yorum almış 3 ile aldığı oyu bölüp işleme almam gerekli ama bunu yıldızlarda nasıl gösteririm onu çözemedim.
    Oy ortalaması hesaplatmayla ilgili https://www.r10.net/1079399852-post8.html buradaki mesajımı inceleyebilirsiniz.

    Yıldızların gösterimiyle ilgili ise;

    $yildiz_adeti = round($oy_ortalama);
    echo str_repeat('<i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>', $yildiz_adeti);
    bu şekilde yapabilirsiniz. Bu kodda örneğin ortalamanız 3.4 ise 3 yıldız gösterir. 3.5 ve üstünde 4 yıldız gösterir. round fonksiyonu yuvarlama yaparak tam sayıya dönüştürür. str_repeat fonksiyonuyla for döngüsüne gerek kalmadan verilen adet kadar stringi yazdırabilirsiniz.

    Eğer yarım yıldız vs. gösterim istiyorsanız onlar için farklı bir mantık izlemeniz gerekebilir.
  • 25-02-2021, 10:06:01
    #7
    Tamamda Burada 4 Yıldız Varsa 4 Dönecektir ama kaç yıldız ortalamasından olduğu belirgin olmayacak.

    Burada Dönen Yıldız sayısına göre 4 Dönerse 4 yıldız sarı diğeri mat şekilde nasıl sıralama yapabilirim ?


    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    Oy ortalaması hesaplatmayla ilgili https://www.r10.net/1079399852-post8.html buradaki mesajımı inceleyebilirsiniz.

    Yıldızların gösterimiyle ilgili ise;

    $yildiz_adeti = round($oy_ortalama);
    echo str_repeat('<i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>', $yildiz_adeti);
    bu şekilde yapabilirsiniz. Bu kodda örneğin ortalamanız 3.4 ise 3 yıldız gösterir. 3.5 ve üstünde 4 yıldız gösterir. round fonksiyonu yuvarlama yaparak tam sayıya dönüştürür. str_repeat fonksiyonuyla for döngüsüne gerek kalmadan verilen adet kadar stringi yazdırabilirsiniz.

    Eğer yarım yıldız vs. gösterim istiyorsanız onlar için farklı bir mantık izlemeniz gerekebilir.
  • 25-02-2021, 15:15:22
    #8
    Adalente adlı üyeden alıntı: mesajı görüntüle
    Tamamda Burada 4 Yıldız Varsa 4 Dönecektir ama kaç yıldız ortalamasından olduğu belirgin olmayacak.

    Burada Dönen Yıldız sayısına göre 4 Dönerse 4 yıldız sarı diğeri mat şekilde nasıl sıralama yapabilirim ?
    5 yıldızlı bir yapı olacaksa, 5den yıldız sayısını çıkardığınız zaman pasif (mat) gözükecek yıldız sayısını elde edersiniz. Denemedim ama aşağıdaki gibi bir kod ihtiyacınızı karşılayabilir.

    $yildiz_adeti = round($oy_ortalama);
    $yildiz_adeti_pasif = 5 - $yildiz_adeti;
    
    echo str_repeat('<i class="fa fa-star" style="padding-right:3px; color:#FFDF00;"></i>', $yildiz_adeti);
    echo str_repeat('<i class="fa fa-star" style="padding-right:3px; color:#ccc;"></i>', $yildiz_adeti_pasif);
  • 25-02-2021, 16:55:45
    #9
    Hocam veri tabanından puan tablosunu avg olarak listlerseniz size ortalamayı verecektir,

    daha sonrasında gelen data kadar örn : 3

    for($i=0; i<$ortalama; $i++){
    <iclass="fa fa-star"style="padding-right:3px; color:#FFDF00;"></i>
    }
    $kalan_yildiz = 5 - $ortalama;
    for($i = 0; $i < $kalan_yildiz; i++){
    <iclass="fa fa-star"style="padding-right:3px; color:#000000;"></i>
    }