Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]dodanie daty
mit2
post
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


witam mam taki problem z dodaniem daty do mysql mam np. date 2011-04-21 10:02:36 i chciałbym dodac do niej np. 30 dni i wysłac to do mysql
mam taki kod php
  1. $datas = time();
  2.  
  3. if($pokh[okres] == '1')
  4. {
  5. $okresx = '+30 days';
  6. }
  7. if($pokh[okres] == '2')
  8. {
  9. $okresx = '+60 days';
  10. }
  11. if($pokh[okres] == '3')
  12. {
  13. $okresx = '+90 days';
  14. }
  15. if($pokh[okres] == '6')
  16. {
  17. $okresx = '+180 days';
  18. }
  19. if($pokh[okres] == '12')
  20. {
  21. $okresx = '+1 year';
  22. }
  23. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '?><?php echo date('n,j,Y H:i:s', strtotime('$okresx', $datas)); ?><?php', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";
  24. $insert = mysql_query($insert);

jak bym to mógł zrobic. Z góry dzięki
Go to the top of the page
+Quote Post
Hpsi
post
Post #2





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Ogólnie bezensu tutaj to zrobiłeś? dlaczego masz 5 ifów ? i nie uzywasz elseif
To pierwsza uwaga
Jesli pole data masz w bazie jako datetime to dajesz takie cos
  1. echo '`koniec_okresu`=`koniec_okresu`+('.$czas.')';

Gdzie czas = w sekundach wyliczony
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie: strtotime('$okresx'
a: strtotime($okresx

Warto by się zapoznać wpierw z podstawami.
Go to the top of the page
+Quote Post
Ghost_78
post
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


Ale namieszałes (IMG:style_emoticons/default/wink.gif)
sprawdz tak:
  1. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '.date('Y-m-d H:i:s', strtotime($datas.' '.$okresx)).', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Ghost_78 sprawdź proszę w manualu jak się używa strtotime i dopiero potem podpowiadaj (IMG:style_emoticons/default/tongue.gif)
Główny błąd jest w tym co podałem.
Go to the top of the page
+Quote Post
Hpsi
post
Post #6





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Cytat
Główny błąd jest w tym co podałem.

hehe podoba mi się to określenie (IMG:style_emoticons/default/biggrin.gif)
sorry za offtopic (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Ghost_78
post
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


Cytat(nospor @ 21.04.2011, 09:32:26 ) *
@Ghost_78 sprawdź proszę w manualu jak się używa strtotime i dopiero potem podpowiadaj (IMG:style_emoticons/default/tongue.gif)
Główny błąd jest w tym co podałem.

hmmm - no u mnie zapis:
  1. echo date("Y-m-d",strtotime('2000-01-01 +1 day'));

daje : 2000-01-02
jedyne co przeoczyłem to to ze tam jest podawane jest time() zamiast np date('Y-m-d');

sorki za ta pomylke (IMG:style_emoticons/default/wink.gif) i dzieki za uwage nospor (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ghost chodziło mi o to, że jako pierwszy parametr podaje się np.+1 day a nie data + 1 day. Dopiero drugim parametrem jest data, w zględem której czas jest liczony.
No ale skoro mówisz, że Tobie działa, widać i tak też można (IMG:style_emoticons/default/smile.gif)

Chodziło o to, ze danie w '$zmienna' nie wygeneruje wartości zmiennej tylko tekst '$zmienna'
Ma być albo "$zmienna" albo $zmienna. - to są podstawy obsługi stringów

Cytat
Cytat
Główny błąd jest w tym co podałem.

hehe podoba mi się to określenie
sorry za offtopic
Faktycznie dziwnie to zabrzmiało (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Ghost_78
post
Post #9





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


Cytat(nospor @ 21.04.2011, 09:50:24 ) *
Ghost chodziło mi o to, że jako pierwszy parametr podaje się np.+1 day a nie data + 1 day. Dopiero drugim parametrem jest data, w zględem której czas jest liczony.

Widzisz ... ja znalem taki sposób jaki przedstawiłem ale ten który Ty podałeś wydaje się bardziej czytelny i na niego się przerzucę.
Całe życie się człowiek uczy (IMG:style_emoticons/default/biggrin.gif) a i tak głupi umiera (IMG:style_emoticons/default/wink.gif)
Dzięki za podanie wygodniejszej alternatywy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
mit2
post
Post #10





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


narazie nic nie działa niechce dodawać do bazy mysql
Go to the top of the page
+Quote Post
Ghost_78
post
Post #11





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


Jakieś błędy?
Go to the top of the page
+Quote Post
ToAr
post
Post #12





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


  1.  
  2. $datas = time();
  3.  
  4. if($pokh[okres] == '1')
  5. {
  6. $datas += 30*24*60*60;
  7. }
  8. if($pokh[okres] == '2')
  9. {
  10. $datas += 60*24*60*60;
  11. }
  12. if($pokh[okres] == '3')
  13. {
  14. $datas += 90*24*60*60;
  15. }
  16. if($pokh[okres] == '6')
  17. {
  18. $datas += 180*24*60*60;
  19. }
  20. if($pokh[okres] == '12')
  21. {
  22. datas += 360*24*60*60;
  23. }
  24. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '$datas', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";
  25. $insert = mysql_query($insert);
Go to the top of the page
+Quote Post
mit2
post
Post #13





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


błedu rzadnego nie pokazuje ale nie chce dodac do bazy mysql a to napewno jest tylko to ponieważ gdy tego nie mialem normalnie dodawalo do bazy
Go to the top of the page
+Quote Post
Ghost_78
post
Post #14





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


zrób
  1. echo $insert.'<br>';
  2. $insert = mysql_query($insert);

wklej wynik
Go to the top of the page
+Quote Post
mit2
post
Post #15





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


INSERT INTO serwer VALUES (NULL, '1231', '3', '1', '4', '5', NOW(), '.date('Y-m-d H:i:s', strtotime(1303377128.' '.+30 days)).', '', 'mit210', '0', '32', '1')
Something is wrong in your syntax obok 'Y-m-d H:i:s', strtotime(1303377128.' '.+30 days)).', '', 'mit210', '0', '32', '1' w linii 1


Ten post edytował mit2 21.04.2011, 10:13:46
Go to the top of the page
+Quote Post
Ghost_78
post
Post #16





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


zobacz tak:
  1. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '".date('Y-m-d H:i:s', strtotime($okresx))."', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";

problem w tym ze tam gdzie podajesz date trzeba uzyc ". date()."
Go to the top of the page
+Quote Post
ToAr
post
Post #17





Grupa: Zarejestrowani
Postów: 49
Pomógł: 18
Dołączył: 7.04.2011
Skąd: Toruń

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


na moje oko powinno być jak już tak:

  1. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '".date('Y-m-d H:i:s', strtotime($okresx))."', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";
  2.  


Go to the top of the page
+Quote Post
mit2
post
Post #18





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


Cytat(Ghost_78 @ 21.04.2011, 11:16:15 ) *
zobacz tak:
  1. $insert = "INSERT INTO serwer VALUES (NULL, '$pokh[ip]', '$pokh[port]', '$dodaj[id]', '$pokh[lok]', '$pokh[gra]', NOW(), '".date('Y-m-d H:i:s', strtotime($okresx))."', '', '$dodaj[login]$pokh[id]', '0', '$pokh[sloty]', '1')";

problem w tym ze tam gdzie podajesz date trzeba uzyc ". date()."

pomogło wielkie dzięki.
mam jeszcze takie jedno pytanko poniewarz chciałbym do tej daty co utworzyłem dodać jeszcze 30 dni ale to w następnej kolumnie w jaki sposób mógł bym to zrobić
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: 23.08.2025 - 08:39