Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niedziałający warunek
Forum PHP.pl > Forum > PHP
Arhimenrius
fragment character.php
  1. <?
  2. if ($_GET['akcja'] == 'edytuj'){
  3. $newexp = $USER['exp'] + 3;
  4. checkNewLevel($newexp);
  5. $query = "UPDATE `users` SET `exp` = '$newexp' WHERE `UsID`='{$USER['UsID']}' ";
  6. $query = mysql_query($query) or die(mysql_error());
  7. header ('location:character.php');
  8.  
  9. }
  10. ?>


A to fragment functions.php
  1. function level($exp)
  2. {
  3. if (($exp) < 6)
  4. {$poziom = 1;}
  5. elseif (($exp) < 21 && ($exp) >= 6)
  6. {$poziom = 2;}
  7. elseif (($exp) < 47 && ($exp) >= 21)
  8. {$poziom = 3;}
  9. elseif (($exp) < 82 && ($exp) >= 47)
  10. {$poziom = 4;}
  11. elseif (($exp) < 128 && ($exp) >= 82)
  12. {$poziom = 5;}
  13. elseif (($exp) < 183 && ($exp) >= 128)
  14. {$poziom = 6;}
  15. elseif (($exp) < 249 && ($exp) >= 183)
  16. {$poziom = 7;}
  17. elseif (($exp) < 324 && ($exp) >= 249)
  18. {$poziom = 8;}
  19. elseif (($exp) < 410 && ($exp) >= 324)
  20. {$poziom = 9;}
  21. elseif (($exp) < 505 && ($exp) >= 410)
  22. {$poziom = 10;}
  23. elseif (($exp) < 611 && ($exp) >= 505)
  24. {$poziom = 11;}
  25. elseif (($exp) < 726 && ($exp) >= 611)
  26. {$poziom = 12;}
  27. elseif (($exp) < 852 && ($exp) >= 726)
  28. {$poziom = 13;}
  29. elseif (($exp) < 987 && ($exp) >= 852)
  30. {$poziom = 14;}
  31. elseif (($exp) < 1133 && ($exp) >= 987)
  32. {$poziom = 15;}
  33. elseif (($exp) < 1288 && ($exp) >= 1133)
  34. {$poziom = 16;}
  35. elseif (($exp) < 1454 && ($exp) >= 1288)
  36. {$poziom = 17;}
  37. elseif (($exp) < 1629 && ($exp) >= 1454)
  38. {$poziom = 18;}
  39. elseif (($exp) < 1815 && ($exp) >= 1629)
  40. {$poziom = 19;}
  41. elseif (($exp) < 2010 && ($exp) >= 1815)
  42. {$poziom = 20;}
  43. elseif (($exp) < 2216 && ($exp) >= 2010)
  44. {$poziom = 21;}
  45. elseif (($exp) < 2431 && ($exp) >= 2216)
  46. {$poziom = 22;}
  47. elseif (($exp) < 2657 && ($exp) >= 2431)
  48. {$poziom = 23;}
  49. elseif (($exp) < 2892 && ($exp) >= 2657)
  50. {$poziom = 24;}
  51. elseif (($exp) < 3138 && ($exp) >= 2892)
  52. {$poziom = 25;}
  53. elseif (($exp) < 3393 && ($exp) >= 3138)
  54. {$poziom = 26;}
  55. elseif (($exp) < 3659 && ($exp) >= 3393)
  56. {$poziom = 27;}
  57. elseif (($exp) < 3934 && ($exp) >= 3659)
  58. {$poziom = 28;}
  59. elseif (($exp) < 4220 && ($exp) >= 3934)
  60. {$poziom = 29;}
  61. elseif (($exp) < 4515 && ($exp) >= 4220)
  62. {$poziom = 30;}
  63. elseif (($exp) < 4821 && ($exp) >= 4515)
  64. {$poziom = 31;}
  65. elseif (($exp) < 5136 && ($exp) >= 4821)
  66. {$poziom = 32;}
  67. elseif (($exp) < 5462 && ($exp) >= 5136)
  68. {$poziom = 33;}
  69. elseif (($exp) < 5797 && ($exp) >= 5462)
  70. {$poziom = 34;}
  71. elseif (($exp) < 6143 && ($exp) >= 5797)
  72. {$poziom = 35;}
  73. elseif (($exp) < 6498 && ($exp) >= 6143)
  74. {$poziom = 36;}
  75. elseif (($exp) < 6864 && ($exp) >= 6498)
  76. {$poziom = 37;}
  77. elseif (($exp) < 7239 && ($exp) >= 6864)
  78. {$poziom = 38;}
  79. elseif (($exp) < 7625 && ($exp) >= 7239)
  80. {$poziom = 39;}
  81. elseif (($exp) < 8020 && ($exp) >= 7625)
  82. {$poziom = 40;}
  83. elseif (($exp) < 8426 && ($exp) >= 8020)
  84. {$poziom = 41;}
  85. elseif (($exp) < 8841 && ($exp) >= 8426)
  86. {$poziom = 42;}
  87. elseif (($exp) < 9267 && ($exp) >= 8841)
  88. {$poziom = 43;}
  89. elseif (($exp) < 9702 && ($exp) >= 9267)
  90. {$poziom = 44;}
  91. elseif (($exp) < 10148 && ($exp) >= 9702)
  92. {$poziom = 45;}
  93. elseif (($exp) < 10603 && ($exp) >= 10148)
  94. {$poziom = 46;}
  95. elseif (($exp) < 11069 && ($exp) >= 10603)
  96. {$poziom = 47;}
  97. elseif (($exp) < 11544 && ($exp) >= 11069)
  98. {$poziom = 48;}
  99. elseif (($exp) < 12030 && ($exp) >= 11544)
  100. {$poziom = 49;}
  101. elseif (($exp) < 12525 && ($exp) >= 12030)
  102. {$poziom = 50;}
  103. elseif (($exp) < 13031 && ($exp) >= 12525)
  104. {$poziom = 51;}
  105. elseif (($exp) < 9999999999 && ($exp) >= 13031)
  106. {$poziom = 52;}
  107. return $poziom;
  108. }
  109.  
  110. function checkNewLevel($exp)
  111. {
  112. global $USER;
  113. $newLvl = level($exp);
  114. $oldLvL = $USER['level'];
  115. $um_point = $USER['Um_point'];
  116.  
  117. if(($newLvl) > ($oldLvl)) {
  118. $um_point = $um_point +5;
  119. $query = "UPDATE `users` SET `level` = '$newLvl', `Um_point` = '$um_point' WHERE `UsID`='{$USER['UsID']}' ";
  120. $query = mysql_query($query) or die(mysql_error());
  121. return true;
  122. }
  123. else return false;
  124.  
  125. }


I nie wiem czemu, aczkolwiek if w CheckNewLevel nie wiadomo czemu jest zawsze spełniania, co za tym idzie, um_point jest co klik o 5 wiecej,a ma być co wbicie lvl :/ Widzi ktoś w tym jakiś błąd?
PiterosWeb
Po pierwsze po co dałeś

  1. if(($newLvl) > ($oldLvl)) {


zrób bez tych nawiasów

  1. if($newLvl > $oldLvl) {


a Po drugie to sprawdź czy obie te zmienne są zmiennymi liczbowymi jest do tego taka funkcja "is_numeric();" czy jakoś tak.
Bo jeśli trzymasz np. ten exp w bazie danych jako string to nie jestem pewien ale to właśnie z tym może mieć problem przy porównywaniu,
Gdy to zrobisz powiedz czy coś się zmieniło.
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.