Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]dodanie daty
Forum PHP.pl > Forum > Przedszkole
mit2
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
Hpsi
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
nospor
Nie: strtotime('$okresx'
a: strtotime($okresx

Warto by się zapoznać wpierw z podstawami.
Ghost_78
Ale namieszałes 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')";
nospor
@Ghost_78 sprawdź proszę w manualu jak się używa strtotime i dopiero potem podpowiadaj tongue.gif
Główny błąd jest w tym co podałem.
Hpsi
Cytat
Główny błąd jest w tym co podałem.

hehe podoba mi się to określenie biggrin.gif
sorry za offtopic wink.gif
Ghost_78
Cytat(nospor @ 21.04.2011, 09:32:26 ) *
@Ghost_78 sprawdź proszę w manualu jak się używa strtotime i dopiero potem podpowiadaj 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 wink.gif i dzieki za uwage nospor smile.gif
nospor
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 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 wink.gif
Ghost_78
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 biggrin.gif a i tak głupi umiera wink.gif
Dzięki za podanie wygodniejszej alternatywy wink.gif
mit2
narazie nic nie działa niechce dodawać do bazy mysql
Ghost_78
Jakieś błędy?
ToAr
  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);
mit2
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
Ghost_78
zrób
  1. echo $insert.'<br>';
  2. $insert = mysql_query($insert);

wklej wynik
Ghost_78
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()."
ToAr
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.  


mit2
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ć
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.