Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]instrukcja switch
red9skull
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


  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)?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
evolucja
post
Post #2





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


  1. echo $dane['atak'];

co zwraca?
Go to the top of the page
+Quote Post
red9skull
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


w tej chwili "4" (z bazy)
Go to the top of the page
+Quote Post
evolucja
post
Post #4





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
red9skull
post
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


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 :|
Go to the top of the page
+Quote Post
evolucja
post
Post #6





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


Jesteś pewien?
  1. $dane['atak'] = trim($dane['atak']);

dodaj to sobie i sprawdź...
Go to the top of the page
+Quote Post
red9skull
post
Post #7





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


Sprawdzone - zwraca samo 4.
Go to the top of the page
+Quote Post
evolucja
post
Post #8





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


pozamieniaj wszystkie
  1. case 1:
na
  1. case '1':

tak już musi działać (IMG:style_emoticons/default/biggrin.gif)

btw. jaki masz typ tego pola w bazie?

Ten post edytował evolucja 23.01.2010, 16:03:54
Go to the top of the page
+Quote Post
Quantum
post
Post #9





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


wystarczy switch((int) $dane['atak']) {
Go to the top of the page
+Quote Post
red9skull
post
Post #10





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


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ć (IMG:style_emoticons/default/biggrin.gif)

btw. jaki masz typ tego pola w bazie?


'1' dalej nic.
Typ miałem decimal - zmieniłem na int i dalej nic.
Go to the top of the page
+Quote Post
Pinky
post
Post #11





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.01.2010

Ostrzeżenie: (0%)
-----


Sprobuj, użyć funkcji empty() by po wyliczeniu zerować..
Go to the top of the page
+Quote Post
pedro84
post
Post #12





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Zarzuć zrzutem tabeli, mi ten kod działa (Tobie też), więc musisz mieć coś z $dane['atak'] nie tak.
Go to the top of the page
+Quote Post
red9skull
post
Post #13





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 11.07.2009
Skąd: root

Ostrzeżenie: (10%)
X----


Cytat(Pinky @ 23.01.2010, 17:01:54 ) *
Sprobuj, użyć funkcji empty() by po wyliczeniu zerować..


Przykład? (IMG:style_emoticons/default/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.


(IMG:http://i45.tinypic.com/fbhp2w.png)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 06:05