←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Problem z liczeniem średniej dla kilku osób

  • +
  • -
kijkol - zdjęcie kijkol 15.05.2014

Witam.

Otóż mam taki kod jak niżej do liczenia średniej z bazy mysql i dla pierwszego liczy dobrze, a dla następnych liczy prawie dobrze.

Mianowicie dodaje wszystkie oceny, ale dzieli przez ilość dla tej konkretnej osoby.

Przykład:

Osoba 1 - ma 5 i 1 6/2 średnia 3 //dobrze

Osoba 2 - ma 10 i 1 liczy 17/2 średnia 8.5 powinno 11/2 // źle 

Osoba 3 - ma 1 i 1 liczy 19/2 średnia  9.5 powinno 2/2 // źle

itd. analogicznie.

Nie mam pojęcia jak ten problem rozwiązać z góry dzięki.

if(mysql_num_rows($krol) > 0) 
{ 
while($r = mysql_fetch_assoc($krol)) 
{
$nick = $r['nick'];
$selocena = mysql_query("SELECT * FROM `kn_krolowieoceny` WHERE `krol`='".$nick."'");
        $selocenanum = mysql_num_rows($selocena);
if($selocenanum != 0){
                        while($selocenaarray = mysql_fetch_assoc($selocena)){
                                $sumaocen = $sumaocen + $selocenaarray['ocena'];
                        }
                        $ocena=$sumaocen / $selocenanum;
                        }else{
                        $ocena = "N/a";
                        }


echo '<tr >
<td style="width: 850px" align="center" style="vertical-align: middle;">'.$nick.' - '.$r['motto'].'<br></td>
<td style="width: 150px" align="center" style="vertical-align: middle;">
'.$ocena.'<br></td>
<td style="width: 150px" align="center" style="vertical-align: middle;">
<form action="krol.php?='.$nick.'" method="POST">
<input type="submit" name="pokaż" class="input_submit alt" value="Więcej"></form>
</td>
</tr>
';
}
}
Odpowiedz

  • +
  • -
Cytrynowy - zdjęcie Cytrynowy 17.05.2014


if(mysql_num_rows($krol) > 0) 
{ 
while($r = mysql_fetch_assoc($krol)) 
{
$nick = $r['nick'];
$selocena = mysql_query("SELECT AVG(ocena) FROM `kn_krolowieoceny` WHERE `krol`='".$nick."'");
        $selocenanum = mysql_num_rows($selocena);
if($selocenanum != 0){
                        while($selocenaarray = mysql_fetch_array($selocena)){
                                $ocena = $selocenaarray['AVG(ocena)'];
                        }
                    }else{
                    $ocena = "N/a";
                    }


echo '<tr >
<td style="width: 850px" align="center" style="vertical-align: middle;">'.$nick.' - '.$r['motto'].'<br></td>
<td style="width: 150px" align="center" style="vertical-align: middle;">
'.$ocena.'<br></td>
<td style="width: 150px" align="center" style="vertical-align: middle;">
<form action="krol.php?='.$nick.'" method="POST">
<input type="submit" name="pokaż" class="input_submit alt" value="Więcej"></form>
</td>
</tr>
';
}
}


Odpowiedz