Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Problem z liczeniem średniej dla kilku osób

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 kijkol

    Profesjonalista

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 15.05.2014 09:52

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>
';
}
}

  • +
  • -
  • 0

#2 Cytrynowy

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:84
  • Steam:steam
  • Imię:Patryk
  • Lokalizacja:Gdynia
Offline

Napisano 17.05.2014 12:34


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>
';
}
}



  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych