Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie..
Forum PHP.pl > Forum > Przedszkole
vifon
Witam, mam taki skrypcik, który zlicza ilość graczy wyglada to w ten sposob - http://monitoring.xaa.pl/e.php
pytanie - czy da się zrobić jakoś, żeby te liczby się zsumowały ? zeby byla liczba wszystkich graczy...
Dziękuje z góry.
wujek2009
Trudno będzie Ci pomóc bez jakiegokolwiek kodu, ale sumowanie robisz mniej więcej tak:
  1. $start = 0;
  2.  
  3. (.. jakaś pętla foreach/while/etc)
  4. {
  5. $aktualna_liczba = $row['players']; // ile graczy jest
  6.  
  7. $start += $aktualna_liczba;
  8. }
  9.  
  10. print_r($start); // wyświetlamy
  11.  
Daiquiri
Czy Ty aby nie pytasz jak dodać cztery liczby smile.gif? Nie wiemy nawet jak wygląda Twój skrypt.

@ciekawskiii
No przecież nie będziemy ludzi uczyć jak dodawać zmienne liczbowe...
ciekawskiii
  1. $wynik = $zmienna1 + $zmienna2 + $zmienna3 + $zmienna4
vifon
Źle się wyraziłem te 4 liczby są zmienne i caly czas zmienia się ich wartość ...
załączam kod:
  1. <?php
  2.  
  3.  
  4.  
  5. $ips = array("91.207.166.74:27015" , "91.203.223.84:27297" , "84.38.95.197:27015" , "91.207.166.74:27018" , );
  6.  
  7. //Jakie dane chcemy wyświetlać:
  8. $what_to_display = Array();
  9. //Wpisz ! na poczatku nazwy, aby oznaczy ja jako wartość TAK/NIE np hasło
  10. $what_to_display["info"] =
  11.  
  12. "" => "activeplayers",
  13.  
  14. );
  15.  
  16.  
  17. function sort_multi($data)
  18. {
  19. $new = Array();
  20. foreach($data as $key => $value)
  21. {
  22. $val = $value["kills"].".".$value["onlinetime"];
  23. $this_data = Array($val => $data[$key]);
  24. $new += $this_data;
  25. }
  26. ksort($new);
  27. $new = array_reverse($new);
  28. return($new);
  29. }
  30. function two_digit($string)
  31. {
  32. if(strlen($string) == 1)
  33. {
  34. $string = "0".$string;
  35. }
  36. return($string);
  37. }
  38.  
  39. require_once("class_PQ.php");
  40. foreach($ips as &$ip)
  41. {
  42. //Tworzymy klasę
  43. unset($data);
  44. $pq_data = PQ::Create(Array());
  45. //Pobieramy dane
  46. $data = array_merge($pq_data->query_info($ip), $pq_data->query_rules($ip), $pq_data->query_players($ip));
  47. //Wyświetlamy dane:
  48.  
  49.  
  50.  
  51.  
  52.  
  53. foreach($what_to_display["info"] as $nazwa => $wartosc)
  54. {
  55. $bool_var = false;
  56. if(substr($nazwa, 0, 1) == "!") {$bool_var = true; $nazwa = substr($nazwa, 1);}
  57.  
  58. echo($nazwa);
  59. echo "<br>";
  60. if($bool_var)
  61. {
  62. if($data[$wartosc] == "1")
  63. {
  64. echo("Tak");
  65. }
  66. else
  67. {
  68. echo("Nie");
  69. }
  70. }
  71. else
  72. {
  73. echo($data[$wartosc]);
  74. }
  75.  
  76. }
  77.  
  78.  
  79. $players_sorted = sort_multi($data["players"]);
  80.  
  81.  
  82.  
  83. }
  84. ?>
  85.  

Daiquiri
A wiesz, która zmienna "wyświetla" Ci te liczby? Jeżeli tak to skorzystaj z rad powyżej smile.gif.
vifon
echo($data[$wartosc]);


ta zmienna wyświetla mi te dane... - nadal nie do końca wiem jak to zrobić..
Daiquiri
Trochę przesadzasz, wystarczyłoby zerknąć na kurs PHP. Skoro $data[$wartosc] to zmienna, która przechowuje te dane to rozwiązanie podał Ci wujek2009, parafrazując jego post:
$suma_wartosci += $data[$wartosc]; pod wyświetlaniem tych sum składowych. Jak wyświetlić to chyba wiesz smile.gif?
vifon
nie wiem nic nie wiem!!!!!!! wgl nie mogę zrozumieć Twoich podpowiedzi...

Skąd mam wziąć tą "$suma_wartosci" ...?
Daiquiri
Po pierwsze nie krzycz. Po drugie skoro nie potrafisz zrozumieć elementarnych elementów języka php jak dodawanie, zwłaszcza przy pomocy kilku osób jasno sugerujących co masz zrobić, widzę że liczysz na gotowca. Dam Ci jednak jeszcze jedną szansę smile.gif.

Masz zmienną, która w pętli wyświetla Ci składowe sumy - jak sam stwierdziłeś jest to $data[$wartosc]. Możesz więc stworzyć inną zmienną np. $suma_wszystkich_sum i w niej sumować wszystkie wartości składowe (czyli $data[$wartosc]). Innymi słowy:
  1. $suma_wszystkich_sum = $suma_wszystkich_sum + $data[$wartosc] //w skrócie $suma_wszystkich_sum += $data[$wartosc]

W każdym wykonaniu się pętli dane składowych sum (czyli $data[$wartosc]) będą się dodawały do zmiennej $suma_wszystkich_sum.

PS. $suma_wszystkich_sum to po prostu nowa zmienna, którą wprowadzasz.
vifon
W końcu zrozumiałem winksmiley.jpg dziękuję.
Jeszcze jedno pytanko da się zrobić tak, żeby wyświetlało tylko końcowy wynik a nie po kolei dodawanie ?
nospor
Chyba jednak nie zrozumiales skoro zadajesz kolejne pytanie o wyswietlanie.....

Jak nie chcesz wyswietlac to nie rob echo na kazdej wartosci tylko zrob raz echo na koncu na sumie.
vifon
tak właśnie robię... -

$suma_wszystkich_sum = $suma_wszystkich_sum + $data[$wartosc];
echo $suma_wszystkich_sum;
Daiquiri
Na końcu czyli poza foreach().
vifon
I Nadal to samo
  1.  
  2. <?php
  3.  
  4.  
  5.  
  6. $ips = array("91.207.166.74:27015" , "91.203.223.84:27297" , "84.38.95.197:27015" , "91.207.166.74:27018" , );
  7.  
  8. //Jakie dane chcemy wyświetlać:
  9. $what_to_display = Array();
  10. //Wpisz ! na poczatku nazwy, aby oznaczy ja jako wartość TAK/NIE np hasło
  11. $what_to_display["info"] =
  12.  
  13. "" => "activeplayers",
  14.  
  15. );
  16.  
  17.  
  18. function sort_multi($data)
  19. {
  20. $new = Array();
  21. foreach($data as $key => $value)
  22. {
  23. $val = $value["kills"].".".$value["onlinetime"];
  24. $this_data = Array($val => $data[$key]);
  25. $new += $this_data;
  26. }
  27. ksort($new);
  28. $new = array_reverse($new);
  29. return($new);
  30. }
  31. function two_digit($string)
  32. {
  33. if(strlen($string) == 1)
  34. {
  35. $string = "0".$string;
  36. }
  37. return($string);
  38. }
  39.  
  40. require_once("class_PQ.php");
  41. foreach($ips as &$ip)
  42. {
  43. //Tworzymy klasę
  44. unset($data);
  45. $pq_data = PQ::Create(Array());
  46. //Pobieramy dane
  47. $data = array_merge($pq_data->query_info($ip), $pq_data->query_rules($ip), $pq_data->query_players($ip));
  48. //Wyświetlamy dane:
  49.  
  50.  
  51.  
  52.  
  53.  
  54. foreach($what_to_display["info"] as $nazwa => $wartosc)
  55. {
  56. $bool_var = false;
  57. if(substr($nazwa, 0, 1) == "!") {$bool_var = true; $nazwa = substr($nazwa, 1);}
  58.  
  59. echo($nazwa);
  60. echo "<br>";
  61. if($bool_var)
  62. {
  63. if($data[$wartosc] == "1")
  64. {
  65. echo("Tak");
  66. }
  67. else
  68. {
  69. echo("Nie");
  70. }
  71. }
  72. else
  73. {
  74.  
  75. }
  76.  
  77. }
  78.  
  79.  
  80. $suma_wszystkich_sum = $suma_wszystkich_sum + $data[$wartosc];
  81. echo $suma_wszystkich_sum;
  82.  
  83.  
  84. }
  85. ?>
  86.  

Daiquiri
Na górze też masz foreach. Serio ostatnia odpowiedź: echo ma być przed ?>
vifon
dzięki i sorry za zmuszanie do łopatologii .
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.