![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
mam problem z update ponieważ gdy robie update daty to wyskakuje mi taka data 0000-00-00 00:00:00 mam taki kod
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 264 Pomógł: 11 Dołączył: 9.05.2011 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
też miałem z tym kiedyś problem ale zrobiłem to tak:
$data = date('j.m.Y H:i'); wtedy zmienną dałem do zapytania i pobierało normalny czas:) oczywiście z nawiasach możesz zmienić ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
a możesz mi to na jakims przykładzie pokazac
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 264 Pomógł: 11 Dołączył: 9.05.2011 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
no normalnie że tak
![]()
to jest mój przykład ale masz wzor jak:D |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
insert to ja wiem jak zrobic ja chce zrobic cos takiego że pobiera mi z bazy date np. datastop i robi update dodając np. 30 dni
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 264 Pomógł: 11 Dołączył: 9.05.2011 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
istnieje do tego znak dodawania "+"
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 3 Dołączył: 26.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze z tym walczysz?? Jak wyjdę z kąpieli to dam ci małą wskazówkę jak w tym przypadku dać wyrażenia regularne
![]() Ps. Jak masz sformatowaną kolumnę z datą ![]() Ten post edytował worek 31.05.2011, 22:36:31 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
pokazuje dalej to samo po update
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, to nie powinno być $tablica[klucz] tylko $tablica['klucz'].
Po drugie, to zamiast tej masy if'ów możesz użyć jednego switch'a. Po trzecie, masz:
spróbuj:
Jak nie zadziała to po tej linijce dodaj: i wklej wynik tutaj. -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 3 Dołączył: 26.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
robisz sobie coś takiego np:
if(!ereg("([0-9]{2})-([0-9]{2})-([0-9]{4})", $dataevent, $tmpdata) || empty($dataevent)){ $error = "Zla data"; } else { echo $tmpdata['1']; echo $tmpdata['2']; echo $tmpdata['3']; } Krótkie wytłumaczenie instrukcja sprawdza np czy tekst pasuje do wzorca (oczekuje dwóch liczb od 0 do 9 potem myślnik potem dwie liczby od 0 do 9 i na końcu to samo tylko cztery cyfry.). Jeżeli data nie pasuje do wzorca zwraca error, jeżeli pasuje to wtedy wywala $tmpdata[x] wynik mniej więcej taki $tmdata['0'] = 04-05-2003 $tmpdata['1']=>04 $tmpdata['2']=>05 $tmpdata['3']=>2003 to jest tylko przykład ale powinien on ci sporo rozjaśnić, przykładzik dałem razem z walidacją ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
a jak to mogę zastosowac w skrypcie
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 3 Dołączył: 26.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ano normalnie, robisz sobie wyrażenie regularne dla twojej daty biorąc przykład z tego co ci podałem. Jak już masz rozbite funkcją ereg to np do zmiennej $tmp['2'] sobie dodajesz 1. Czyli równiutki miesiączek. Potem używasz implode do połączenia i wrzucasz do bazy jako stringa. To jest jedno z możliwych zastosowań.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
a inne
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Worek, ale Twoim sposobem będzie mu ciężko dodać do daty np. 180 dni... będize musiał dizelić na miesiące nie wiedząc po ile mają dni (w sensie kolejne po tym do którego dodaje, za dużo liczenia) myślę ze znacznie łatwiej było by najpierw wyciągnąć datę wrzućić ja do czasu unixowego (jak dobrzepamietam) $unix = strtotime($data) i masz int'a wtedy dodając np te wspomniane wcześniej 180 dni robisz tak $unix += 60*60*24*180; jako że czas ten jest liczony w sekundach musisz wymnożyć kolejno (60sekund czyli minuta)*(60minut czyli godizna)*(24godziny czyli doba)(180dni -czyli tyle ile chcesz dodać). a po tym dizałaniu zapisujesz tlyko nową datęw formacie jaki tam masz używając date('format',$unix)
wszystko rozbija się o to jak masz zakodowaną date w bazie Ten post edytował zembi1991 1.06.2011, 23:53:37 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
mozesz dac jakis przykład
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
przykładowo:
modyfikujesz jakis wpis którego data jest taka '2011-05-04' wyciągasz ja przez zapytanie sql mając date '2011-05-04' możesz zamienić ja na czas UNIX (ilość sekund od 1sty1970) poprzez: wtedy $unix będzie równe '1304467200', i teraz przykładowo chcesz dodać 6 dni do tej daty to robisz to w taki sposób:
gdzie nawias to ilość sekund jaka musisz dodaćzatem od prawiej 6 dni wiec na koncu '6' dzien ma 24h wiec pozniej '24' godizna ma 60 minut wiec '60' minuta ma 60 sekund wiec '60' i tym mnożeniem uzyskujesz ilość sekund jaką musisz dodać pózniej już aby zapisać tą date do bazy wystarczy zrobić sql update i w miejscu wartości daty wpisać i wszystko ![]() Podaj jak masz zapisaną date w bazie |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
datetime mam czyli 0000-00-00 00:00:00
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 3 Dołączył: 26.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
No podałem taki przykład bo tak też da się zrobić, świetnie się to sprawdza przy całkowitych liczbach. Dzień, Miesiąc, Rok. Co do unix time'a to już wcześniej go naprowadziłem tylko nie brałem pod uwagę jak on chce rozwiązać tego update'a. Wczoraj dopiero podał strukturę tabeli to wrzuciłem pierwsze co mi do głowy przyszło
![]() |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 5 Dołączył: 4.08.2010 Ostrzeżenie: (40%) ![]() ![]() |
ma jeszcze jedno pytanie jeżeli mam $unix+ i ta data to jaki teraz będzie format tego mnożenia
Ten post edytował mit2 2.06.2011, 00:54:45 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 03:08 |