ugrás a tartalomhoz

Átlag számítás és % szavazáshoz

chipi · 2006. Aug. 26. (Szo), 23.50
Sziasztok!
Olyat hogyan lehet csinálni, hogy van egy szavazásom ahol van 5 tétel amire lehet szavazni, no, de a bibi az ott kezdődik nálam, hogy amikor lekérem akkor nekem % arányában jelenjenek meg az értékek. A max az a 100% legyen.
Mint pl Itt

Na, hogy % arányban jelenjen meg.

Köszi előre is a segítséget!
 
1

százalékszámítás

jeti · 2006. Aug. 27. (V), 00.20
A százalékszámításnak megfelelően:
$ertek1,...$ertek5

$ertekosz=$ertek1+$ertek2+$ertek3+$ertek4+$ertek5;
$szazalek1=($ertek1/$ertekosz)*100;
printf("%.2f",$szazalek1); \* 2 számjegyű a tizedes 
vagy egyszerűen csak: printf("%.2f",(($ertek1/$ertekosz)*100));
*\

...

$szazalek5=($ertek5/$ertekosz)*100;
printf("%.2f",$szazalek5);
2

Számitási gondok

chipi · 2006. Aug. 27. (V), 00.39
Köszi, de lettek problémák.
<?php for($k=1; $k < ($totalRows_login+1); $k=$k+1) { ?>				
	<table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="56%"><?php echo $olvas_tomb[$k]["kerdes"]; ?></td>
          <td width="44%">
            <?php 
			
			/*if( $osszeg == "0") {
echo "0";
}		  
else{ 
}
echo $olvas_tomb[$k]["szavazas"];*/
$osszeg = $olvas_tomb[$k]["szavazas"];
$ertekosz=$osszeg;
$szazalek1=($osszeg/$ertekosz)*100;
printf("%.2f",$osszeg); 
/* 2 számjegyû a tizedes 
vagy egyszerûen csak: printf("%.2f",(($ertek1/$ertekosz)*100));
*/

$szazalek5=($osszeg/$ertekosz)*100;
printf("%.2f",$szazalek5);		  ?>
          </td>
        </tr>
      </table><?php } ?>
Nem változik az arány, mindig csak az az aktuális szám. Ezeket egy adatbázisbol kérem le a kérdéseket és melléje az értéküket és mindig csak is 1 változik szerintem a ciklus miatt.
3

lemaradt?

breakline · 2006. Aug. 27. (V), 00.50
nem így gondoltad?

$ertekosz+=$osszeg;
6

Másolás

jeti · 2006. Aug. 27. (V), 12.50
Látom, azért este mindenki fáradt... (Rosszul másoltad be a forráskódot.)

$osszeg = $olvas_tomb[$k]["szavazas"];
$ertekosz=$osszeg;
$szazalek1=($osszeg/$ertekosz)*100;
printf("%.2f",$osszeg);
A következőt csinálod:
- kiolvasol egy értéket az $osszeg-be (pl.: 254)
- ezt belemásolod az $ertekosz-be is (254)
- $szazalek1 (értéke: (254/254)*100 vagyis 100)
- ezek után kiírod a beolvasott értéket ($osszeg) 2 tizedes jeggyel (254,00)

Egy megoldás:

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
$ossz=0;
for ($i = 0; $i <= count($olvas_tomb)-1; $i++)
{$ossz=$ossz+$olvas_tomb[$i]["szavazas"];}
foreach($olvas_tomb as $szav) {
?>
        <tr> 
          <td width="56%"><?php echo $szav["kerdes"]; ?></td>
          <td width="44%">
            <?php 
            
            if($szav["szavazas"] == "0") {
echo "0";
}else{
printf("%.2f",(($szav["szavazas"]/$ossz)*100));
?>
          </td>
        </tr>
<?php } ?>
      </table>
(Én a php-ból szoktam kiíratni a html tag-eket.)
Nem próbáltam ki, de elvileg működnie kell.
4

% számítás

chipi · 2006. Aug. 27. (V), 00.55
Hát én valahogy úgy dondoltam, hogy ha bővitem az adatbázisban a pontokat és akkor új érték fog belekerülni, és akkor annak az összegéböl csináljon egy % átlagot aminek minden tagja változzon mikor pl az elsőre szavaznak, azaz mindegyiknek a % változni fog.
5

matek könyv

tiku I tikaszvince · 2006. Aug. 27. (V), 08.27
Javaslom vedd elő a matematika tankönyvet, keresd meg a százalékszámítás részt és nagy odafigyeléssel tanulmányozd át. Ha tisztában vagy a százalékszámítással akkor viszont nem értem mi a probléma.
Röviden összefoglalva: egy százalékértékben azt tudod kifejezni, hogy egy részérték milyen arányban áll az egészhez képest.
Ennek megfelelően arra vagy kiváncsi, hogy mekkora az adott válaszra érkezett szavazatok aránya. Tehát
  • először ki kell derítened, hogy hány szavazatod van,
  • majd kideríted, hogy az egyes szavazatokra hány szavazat érkezett.
  • Harmadik lépésben következik a kiíratás. Végig lépkedsz a válaszokon. Az egyes lépésekben kiírod a válasz számát, szövegét (ízlés szerint), és egy osztás (válaszra adott szavazatok száma/összes szavazat) eredményét.


Ui: Jó lenne ha javítanál a fogalmazásodon. a "Naszóval", "olyatakarok/szeretnék" tipusú mondatok sokaknál kiverik a biztosítékot, és válasznélkül hagynak. Egy fórumon szerintem illik úgy fogalmazni, mintha levelet írnál, és nem úgy, mintha a szóban megfogalmazott szöveged vetnéd papírra. Lehet rövidíteni, de normális határok között, úgy, hogy az ne legyen az olvasó számára zavaró.
Plusz: a válaszadókat tiszteled meg azzal, ha normálisan megfogalmazott mondatokat írsz.
7

pontosan

breakline · 2006. Aug. 27. (V), 12.54
én is erre gondoltam, furcsa volt h.

$osszeg = $olvas_tomb[$k]["szavazas"];
$ertekosz=$osszeg;
$szazalek1=($osszeg/$ertekosz)*100;


mert így mindig pontosan 100-at kapsz (pl. (250/250)*100)