![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam lamerski problem i chyba zmęczenie materiału daje się we znaki albo sam nie wiem co (IMG:style_emoticons/default/sad.gif) Mam formularz do którego dołączony jest kalendarz. Klikam w kalendarz i w inpucie tekstowym pojawia się wskazana w kalendarzu data w formacie yyyy-mm-dd. Następnie przy użyciu $_Post wyciągam dane z formularza i wrzucam je do zapytania które wysyła je do bazy danych. Problemem jest właśnie pole Data w bazie danych. Typ pola - Date. zamiast pobranej z inputa wartości wrzuca mi "0000-00-00". Już zgłupiałem dlaczego. Nie mam pojęcia o czym zapomniałem. Głowa mnie boli bo 4 dzień z rzędu siedzę w php (ogólnie nad projektem nie nad tym problemem) i zaciąłem się na takim czymś...
dla porządku : nieszczęsny input:
formularz (w sumie chyba starczy tyle żeby pokaząc ze jest $_POST:
wyciągam więc dane z formularza:
no i.... co dalej? echem wyrzygałem na ekran czy poprawnie pobrane są dane i jest ok. dane z formularza są jak najbardziej prawidłowe ale juz do sql nie zapisuje się poprawna data tylko wspomniane 0000-00-00 dorzuce jeszcze:
pozostałe pola są nieistotne więc je pomijam. mam jeszcze pytanie - czy nie lepiej zamiast dwóch pól z datą i godziną używać jednego pola typu datetime? i jeśli tak - jak pobrać dane z dwóch inputów i wysłać je poprawnie do bazy danych bo próbowałem też w taki sposób i też mam z tym problemy. z góry dziękuję za wszelką konstruktywną dyskusję i porady/ wskazówki/pomoc w rozwiązaniu problemu Ten post edytował Darkstorm 21.08.2010, 19:46:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
napisałem w pierwszym poście że typ danych dla pola "data" to date. zmiana na timestamp nie pomogła.
o jakie konkretnie ustawienia bazy pytasz? dopisałem sobie echo, żeby sprawdzić typ danych dla zmiennej $data: i w efekcie dostałem info:
to samo dla $time i wniosek jest taki, że zarówno $data jak i $time to string. $time dodaje się prawidłowo ( $time - pole w bazie typ TIME) a $data nie ($data data typ DATE/ TIMESTAMP - tutaj dla obu typów nie działa ptrawidłowo) ///edit wciskam na kalendarzu datę 25 sierpnia 2010 roku a var_dump wyrzuca mi na ekran: string(10) "2010-08-25" //edit2 zrobiłem restart localhosta i okazuje się że var_dump wyświetla mi bool(false). co ciekawe gdy wpisze do formularza niepełne dane - $data to string, gdy wypełnię cały - już ginie... ///edit3 użyłem najgroźniejszej broni - logicznego myślenia. skoro w else $data magicznie znikała (sam nie wiem dlaczego) ponownie pobrałem ją z formularza. dzięki temu udało się i zapis do bazy danych wykonuje się poprawnie. wszystko działa jak należy (IMG:style_emoticons/default/smile.gif) dzięki wszystkim za zainteresowanie się moim problemem i za wskazówke z var_dump'em. dzięki temu udało się ustalić gdzie zmienna $data gubi swoją wartość. dla porządku - taka wersja działa:
Ten post edytował Darkstorm 21.08.2010, 21:46:55 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 10:07 |