Ş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.
Php anket yüzdesi bulmak?
6
●1.212
- 27-07-2010, 00:24:02belki 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
<? $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:48Kimlik 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:31:48Arkadaş için pek önemli değildir şimdilik ama küçük bir veri kaybı oluyor, kendi kafasına göre düzeltsin diye yazmadım.Cappystarj0e adlı üyeden alıntı: mesajı görüntüle
Bir de php'de yeniymiş, sık sık php.net kullanacak, alışsın.
Bir de php'de yeniymiş, sık sık php.net kullanacak, alışsın.