Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z funkcją
Forum PHP.pl > Forum > Przedszkole
colinQ
Mam taki mały problemik:

mam tablicę $osoba i funkcję zatrudnij.

  1. $osoba = array('dowodca' => 1650, 'kwatermistrz' => 1200, 's_oddzialu' => 1120, 's_saperow' => 1400, 's_uzbrojenia' => 980, 's_sanitarny' => 600, 'kreslarz' => 580, 'radiotelegrafista' => 1050, 'sekretarz' => 1130);
  2.  
  3.  
  4.  
  5. function zatrudnij($czas, $funkcja) {
  6.  
  7. $login = $_SESSION['login'];
  8. $b = "select * from sklad_sztabu where user='$login' AND osoba='$funkcja'";
  9. $wynik2 = mysql_query($b);
  10. $ile2 = mysql_num_rows($wynik2);
  11. $feth2 = mysql_fetch_assoc($wynik2);
  12. $time = time();
  13. $all2 = $time + $czas;
  14.  
  15. if($ile2>0) {
  16. if($feth2['time'] <= $time){
  17.  
  18. if(!empty($_SESSION['budowa'])){
  19. mysql_query("update users set budowa='' where log='$login'");
  20. $_SESSION['budowa'] = '';
  21. }
  22.  
  23. echo 'zwolnij/wyszkol';
  24. } else { 
  25. ?>
  26. <script language="javascript" type="text/javascript"> 
  27. <!-- 
  28. i = 0;
  29. function zegar2() {
  30. teraz = <? echo time(); ?> + i;
  31. dzien = <? echo $feth2['time']; ?>
  32. sekund = Math.abs((teraz-dzien)); 
  33. minut = Math.floor(sekund/60); 
  34. godzin = Math.floor(minut/60); 
  35. dni = Math.floor(godzin/24); 
  36. lat = Math.floor(dni/365); 
  37. sekund = Math.floor(sekund-minut*60); 
  38. minut = Math.floor(minut-godzin*60); 
  39. godzin = Math.floor(godzin-dni*24); 
  40. dni = Math.floor(dni-lat*365);
  41. if(dni > 0)
  42. {
  43. dni = dni * 24;
  44. godzin = godzin + dni;
  45. }
  46. godziny = Math.floor(godzin-1);
  47. roznica=+godzin+ 
  48. ":"+((minut<10)?"0":"")+minut+ 
  49. ":"+((sekund<10)?"0":"")+sekund; 
  50. document.getElementById("okienko").innerHTML = ""+roznica; 
  51. if (teraz<dzien) { 
  52. i = i + 1;
  53. setTimeout("zegar2()",1000); 
  54. }
  55. else
  56. {
  57. location.reload();
  58. }
  59. // --> 
  60. </script>
  61.  
  62. <?
  63. echo '<body onload=zegar2();><span id="okienko">-</span></body>';
  64. }
  65. } else {
  66.  
  67. if(isset($_GET["zatrudnij_$funkcja"]) && $ile2==&& $_SESSION['budowa'] == '') {
  68.  
  69. $kasa = $_SESSION['money'] - $osoba['$funkcja'];
  70.  
  71.  
  72. mysql_query("update users set money='$kasa' where log='$login'");
  73.  
  74. $_SESSION['money'] = $kasa;
  75.  
  76. $_SESSION['budowa'] = $funkcja;
  77.  
  78. mysql_query("update users set budowa='$funkcja' where log='$login'");
  79.  
  80. $razem2 = $time + $czas2;
  81.  
  82. $query2 = "insert into sklad_sztabu values('$funkcja', '$all2', '1', '$login')";
  83.  
  84. if(mysql_query($query2)) 
  85. echo "<body onload=location.reload();></body>";
  86.  
  87.  
  88. } else {
  89. if($_SESSION['budowa'] == '')
  90. echo "<a href=index.php?frame=sztab&zatrudnij_$funkcja>zatrudnij</a>";
  91. else
  92. echo "-";
  93. }
  94.  
  95. }
  96.  
  97. }


chodzi mi o ta linijkę:

$kasa = $_SESSION['money'] - $osoba['$funkcja'];

Dlaczego nie odejmuje się??

jeżeli zamiast $osoba['$funkcja'] podstawie 50 to działa :/

dlaczego tak jest??
nevt
nie widzisz wewnątrz funkcji zmiennej globalnej $osoba

dodaj wewnątrz funkcji deklarację:

global $osoba;

pozdrawiam.(sorry za public - pospieszyłem się...)
colinQ
Dalej nie odejmuje :/

coś innego musi być...
nevt
no to jeszcze wywal apostrofy:

... - $osoba[$funkcja]

i będzie ok smile.gif
colinQ
I jest ok biggrin.gif

Dzięki
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.