Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]instrukcja switch
Forum PHP.pl > Forum > Przedszkole
red9skull
  1. <?php
  2. include("mysql_connect.php");
  3.  
  4. $stats = mysql_query("select * from `konta` where `login` = '$login'"); // Pobieramy z bazy danych wszelkie informacje.
  5. $dane = mysql_fetch_array($stats);
  6.  
  7. $date = date('H:i:s');
  8. switch($dane['atak']) {
  9. case 1:
  10. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 90 seconds");
  11. break;
  12. case 2:
  13. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 120 seconds");
  14. break;
  15. case 3:
  16. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 150 seconds");
  17. break;
  18. case 4:
  19. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 180 seconds");
  20. break;
  21. case 5:
  22. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 220 seconds");
  23. break;
  24. case 6:
  25. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 250 seconds");
  26. break;
  27. case 7:
  28. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 380 seconds");
  29. break;
  30. default:
  31. $timestamp = strtotime(date("H:i:s", strtotime($date)) . " + 666 seconds");
  32. break;
  33. }
  34. $expired = date('H:i:s', $timestamp);
  35.  
  36. $login = $_SESSION['login'];
  37. var_dump($dane['atak']);
  38. $czas = "UPDATE `konta` SET `czas` = '$expired' WHERE `login`='$login'";
  39. mysql_query($czas);
  40.  
  41. $szkolenie = "UPDATE `konta` SET `szkolenie` = '1' WHERE `login`='$login'";
  42. mysql_query($szkolenie);
  43.  
  44.  
  45. ?>


Czemu zmienna $timestamp zawsze przyjmuje defaultową wartość (666)?
evolucja
  1. echo $dane['atak'];

co zwraca?
red9skull
w tej chwili "4" (z bazy)
evolucja
Jesteś pewien, że jest to czyste 4? Bez żadnych białych znaków? Spróbuj z góry ustawić sobie
  1. $dane['atak'] = 2;
i sprawdź czy znowu pójdzie default.
red9skull
Cytat(evolucja @ 23.01.2010, 14:15:22 ) *
Spróbuj z góry ustawić sobie
  1. $dane['atak'] = 2;
i sprawdź czy znowu pójdzie default.


$dane['atak'] = 4; I to działa O.O W tej wartości z bazy danych nie ma pustych znaków :|
evolucja
Jesteś pewien?
  1. $dane['atak'] = trim($dane['atak']);

dodaj to sobie i sprawdź...
red9skull
Sprawdzone - zwraca samo 4.
evolucja
pozamieniaj wszystkie
  1. case 1:
na
  1. case '1':

tak już musi działać biggrin.gif

btw. jaki masz typ tego pola w bazie?
Quantum
wystarczy switch((int) $dane['atak']) {
red9skull
Cytat(sniffer32 @ 23.01.2010, 15:24:44 ) *
wystarczy switch((int) $dane['atak']) {


Nie pomogło.

Cytat(evolucja @ 23.01.2010, 15:14:57 ) *
pozamieniaj wszystkie
  1. case 1:
na
  1. case '1':

tak już musi działać biggrin.gif

btw. jaki masz typ tego pola w bazie?


'1' dalej nic.
Typ miałem decimal - zmieniłem na int i dalej nic.
Pinky
Sprobuj, użyć funkcji empty() by po wyliczeniu zerować..
pedro84
Zarzuć zrzutem tabeli, mi ten kod działa (Tobie też), więc musisz mieć coś z $dane['atak'] nie tak.
red9skull
Cytat(Pinky @ 23.01.2010, 17:01:54 ) *
Sprobuj, użyć funkcji empty() by po wyliczeniu zerować..


Przykład? biggrin.gif


Cytat(pedro84 @ 23.01.2010, 17:12:16 ) *
Zarzuć zrzutem tabeli, mi ten kod działa (Tobie też), więc musisz mieć coś z $dane['atak'] nie tak.


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.