Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Obliczanie procentów
devils
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.09.2010

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A nie:
  1. $liczba1 / $liczba2 * 100

?


--------------------
Go to the top of the page
+Quote Post
devils
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.09.2010

Ostrzeżenie: (10%)
X----


No dobra, ale podpowiedz które liczby bo nie bardzo rozumiem...
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A nie możesz sam pokombinować? Wszystko na tacy?
Pomyśl: masz 250 z 453, czyli ~55%, bo 250 / 453 * 100 = 55,18...


--------------------
Go to the top of the page
+Quote Post
devils
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.09.2010

Ostrzeżenie: (10%)
X----


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ę
Go to the top of the page
+Quote Post
mortus
post
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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ł.

Ten post edytował mortus 25.03.2012, 10:19:15
Go to the top of the page
+Quote Post
devils
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.09.2010

Ostrzeżenie: (10%)
X----


@mortus, wszystko działa, wielkie dzięki smile.gif

~Do zamknięcia.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:18