• 26-07-2010, 23:38:27
    #1
    Şimdi elimde üç tane değer var birincisi anketteki 1.seçenek diğeri ise 2.seçenek
    birde toplam kaç oy olduğu.

    Toplam oya göre % değeri bulmak istiyorum yani %60 1.seçenek %40 2.seçenek gibi.

    Mantık olarakda kodlama oalrakda kafamda birşey canlanamadı, php'de yeniyim.
  • 27-07-2010, 00:14:27
    #2
    konu güncel arkadaşlar sadece mantığını anlatın en azından?
  • 27-07-2010, 00:24:02
    #3
    belki daha önce tecrübe etmiş bi arkadaşlar daha uygun bi algoritma sunucaklardır ama ilk aklıma gelen örneklicek olursak 900 ve 300 iki adet oyumuz var toplam oy 1200 önce toplam oyun %1 değerini buluruz yani toplam oyu 100 e bölüyoruz 12 çıkıyor 12 toplam oyun %1 değeri yani daha sonra 1. ve 2. oyları bu orana bölerek yüzdelik dilimini buluruz
    $cel_toplam = $toplamay / 100;
    $birinci_oyun_toplam_oya_yuzdesi = $birinci_anketin_toplam_oyun / $cel_toplam;
    gibi bu bize birinci oyun yuzdeliğini vericektir aynı işlemle ikincininde yüzdelik oranını buluruz

    * cümle düşük olmuş kısaca böyle yani.
    <?php
    $birinci_anket_toplam_oy = 900;
    $ikinci_anket_toplam_oy = 300;
    $toplam_oy = $birinci_anket_toplam_oy + $ikinci_anket_toplam_oy;
    $oran = $toplam_oy / 100;
    $x_oran = $birinci_anket_toplam_oy / $oran;
    $y_oran = $ikinci_anket_toplam_oy / $oran;
    echo $x_oran."<br/>";
    echo $y_oran;
    ?>
  • 27-07-2010, 00:53:53
    #4
    <?
    $a=100; // birinci seçeneğe verilen oy sayısı
    $b=221; // ikinci seçeneğe verilen oy sayısı
    $toplam=$a+$b;
    
    $yuzde_a = ($a/$toplam)*100;
    $yuzde_b = ($b/$toplam)*100;
    
    echo $yuzde_a.'<br>'.$yuzde_b;
    ?>
    Bu şekilde bulursun fakat tam yüzdelik rakam vermez. Elinde 2 adet 2 basamaklı toplamları yüz olacak şekilde sayılardan oluşan bir istatistik olsun istiyorsan, en azından sonuçları ceil veya round gibi bir fonksiyonlar yuvarlamalısın. ceil ve round fonksiyonlarının kullanımları için php.net'e bakabilirsin.
  • 27-07-2010, 01:07:48
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    sadece forumxtr nin verdiği kodda son satırda round() kullanacaksın.

    <?
    $a=100; // birinci seçeneğe verilen oy sayısı
    $b=221; // ikinci seçeneğe verilen oy sayısı
    $toplam=$a+$b;

    $yuzde_a = ($a/$toplam)*100;
    $yuzde_b = ($b/$toplam)*100;

    echo round($yuzde_a).'<br>'.round($yuzde_b);
    ?>


    %31 e %69 çıkıyor... dilersen round($yuzde_a,2) şeklinde yapıp, ondalıklı kısmı belirtebilirsin. Yine toplamları yüz oluyor.
  • 27-07-2010, 01:14:24
    #6
    hepinize tek tek teşekkürler arkadaşlar
  • 27-07-2010, 01:31:48
    #7
    Cappystarj0e adlı üyeden alıntı: mesajı görüntüle
    sadece forumxtr nin verdiği kodda son satırda round() kullanacaksın.

    <?
    $a=100; // birinci seçeneğe verilen oy sayısı
    $b=221; // ikinci seçeneğe verilen oy sayısı
    $toplam=$a+$b;

    $yuzde_a = ($a/$toplam)*100;
    $yuzde_b = ($b/$toplam)*100;

    echo round($yuzde_a).'<br>'.round($yuzde_b);
    ?>


    %31 e %69 çıkıyor... dilersen round($yuzde_a,2) şeklinde yapıp, ondalıklı kısmı belirtebilirsin. Yine toplamları yüz oluyor.
    Arkadaş için pek önemli değildir şimdilik ama küçük bir veri kaybı oluyor, kendi kafasına göre düzeltsin diye yazmadım. Bir de php'de yeniymiş, sık sık php.net kullanacak, alışsın.