Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Obliczanie procentów
Forum PHP.pl > Forum > Przedszkole
devils
Witam,
Nie wiem jak zrobić żeby wyliczyło mi ile procent brakuje do danego poziomu.

$user['doswiadczenie'] calkowite doswiadczenie

struktura bazy z poziomami wygląda następująco

|ID|Doswiadczenie|Potrzeba|
|1 |0 |30 |
|2 |91 |141 |
|3 |232 |221 |
|4 |453 |391 |

I załóżmy mam 250 doświadczenia czyli poziom 3 (id:3) i potrzebuję obliczyć ile procent brakuję do poziomu 4 czyli do 453 doświadczenia.

Z góry dziękuję, pozdrawiam.
Kshyhoo
A nie:
  1. $liczba1 / $liczba2 * 100

?
devils
No dobra, ale podpowiedz które liczby bo nie bardzo rozumiem...
Kshyhoo
A nie możesz sam pokombinować? Wszystko na tacy?
Pomyśl: masz 250 z 453, czyli ~55%, bo 250 / 453 * 100 = 55,18...
devils
No i tak zrobilem...

  1. $lvlplus = $user['lvl'] + 1;
  2. $lvl = mysql_fetch_assoc(mysql_query("SELECT doswiadczenie FROM lvl WHERE id='".$lvlplus."'"));
  3. $user['doswiadczenie'] / $lvl['doswiadczenie'] * 100;


i gdy "wbije" kolejny poziom procenty idą od ~50 w górę
mortus
Raczej nie tak Kshyhoo. 100% to różnica między poziomami, a aktualny "postęp" to liczba punktów doświadczenia bez tych, które były potrzebne do aktualnego poziomu. Zatem:
(250-232)/(453-232) * 100
a ogólniej:
(liczba punktów doświadczenia - Doswiadczenie)/Potrzba * 100
  1. $sql = "SELECT ({$user['doswiadczenie']} - `Doswiadczenie`)/`Potrzeba` * 100 FROM `lvl` WHERE id = {$user['lvl']}";

Oczywiście wszystkie dane muszą być liczbami, żeby MySQL to policzył.
devils
@mortus, wszystko działa, wielkie dzięki smile.gif

~Do zamknięcia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.