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

Tabelka serwerów - nieprawidłowo wyswietane procenty

inny

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

#1 Szyfrant

    Godlike

  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 08.01.2014 14:22

Posiadam modyfikację http://forum.invisio...33-server-list/

 

E tabelce serwerów procenty wyświetlają się nieprawidłowo a mianowicie zawsze jest 0%

 

Oto kawałek kodu:

			while( $row = $this->DB->fetch() )
			{
				$data = $row;
				$data['percent'] = round($data['players_num']*100/$data['players_max'], 2);
				$data['players'] = json_decode($data['players'],1);
				/*if($data['players']['time']>0) { $data['players']['czas'] = sec2hms($data['players']['time']);}
				else if($data['players']['sec']>0) { $data['players']['czas'] = sec2hms($data['players']['sec']);}
				else { $data['players']['czas'] = '--';}*/
				if(!empty($data['players']['0']['time']) || !empty($data['players']['1']['time'])) {$game_server = true;}
			
			}

Pozdrawiam.


  • +
  • -
  • 0

#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 08.01.2014 14:59

W tym zastanawia mnie jeden fakt:

$data['percent'] = round($data['players_num']*100/$data['players_max'], 2);

Bo z tego co widzę to wzór na procent to X*100/Y.

Jeżeli podstawimy załóżmy że na 20 slotowym serwerze gra 10 osób to

10*100/20= 1000/20 = 500

Wydaje mi się że wzór powinien zostać zmieniony na jeden z poniższych

A) X*(100/Y) 

B) X/Y*100

 

Podstawmy do tych dwóch wzorów te same wartości.

A) 10*(100/20) = 10*5 = 50 [ % ]

B) 10/20 * 100 = 0,5 * 100 = 50 [ % ]

 

To moje jedyne spostrzeżenie w sprawie twojego problemu dotyczące obecnego kodu. Mimo wszystko dziwi mnie że zamiast tego przykładowego 5000% wyświetla 0%, możliwe też że po prostu jest warunek typu: "Jeżeli Zmienna Procent jest większa niż 100 to wypisz 0% na ekranie"

 

Przegrałem życie..


  • +
  • -
  • 1

#3 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 08.01.2014 15:10

*
Popularny

10*100/20= 1000/20 = 500

Przelicz jeszcze raz.


sebul (08.01.2014 23:25):
A już też chciałem pisać, po przeczytaniu tego działania. Jakieś magiczne 0 się skądś tam wzięło xD

  • +
  • -
  • 6

If you can dream it, you can do it.


#4 Szyfrant

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 08.01.2014 15:17

No własnie tak próbowałem i jest kicha :)


  • +
  • -
  • 0

#5 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 08.01.2014 15:46

Automatyczna wiadomość


Ten temat został przeniesiony z forum

InneProgramowanieProblemy

do

InneWWWProblemy
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#6 GiboneKPL

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:29
  • GG:
  • Imię:Maciek
  • Lokalizacja:Brzesko
Offline

Napisano 08.01.2014 16:30

Spróbuj tak:

$data['procent'] = round($data['players_num'] / $data['players_max']* 100);
$data['precent'] = " - ".$data['procent']."%";

  • +
  • -
  • 0

#7 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 08.01.2014 20:31

ilość graczy * max ilość graczy / 100 ? :D 
 tak to jest jak się napisze a nie pomyśli ...

 

 

To powinno działać

$data['procent'] = round( ( $data['players_num'] * 100 ) / $data['players_max'], 2);
$data['precent'] = " - ".$data['procent']."%";

 

10*100/20= 1000/20 = 500

Przelicz jeszcze raz.

 

 

Miszcz :D


Użytkownik Gh0st edytował ten post 08.01.2014 20:39

  • +
  • -
  • 0

#8 Supryk

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:108
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Śmilowice
Offline

Napisano 10.01.2014 14:01

to co napisal gibonek dziala bardz dobrzema. kod z mojej tabeli pod mybb
tu tak samo

http://polish-zone.p...19.241:9987.png
  • +
  • -
  • 0

#9 Supryk

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:108
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Śmilowice
Offline

Napisano 10.01.2014 15:52

            while( $row = $this->DB->fetch() )
            {
                $data = $row;
                $data['procent'] = round($data['players_num'] / $data['players_max']* 100, 2);
                $data['players'] = json_decode($data['players'],1);
                /*if($data['players']['time']>0) { $data['players']['czas'] = sec2hms($data['players']['time']);}
                else if($data['players']['sec']>0) { $data['players']['czas'] = sec2hms($data['players']['sec']);}
                else { $data['players']['czas'] = '--';}*/
                if(!empty($data['players']['0']['time']) || !empty($data['players']['1']['time'])) {$game_server = true;}
            
            }


  • +
  • -
  • 0





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

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

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