Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]wysyłanie danych do tabeli z typem date
Darkstorm
post
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:
  1. <input type="text" name="data" id="date1" />


formularz (w sumie chyba starczy tyle żeby pokaząc ze jest $_POST:
  1. <form name="dodaj_seans" action="jakistampehape" method="post">


wyciągam więc dane z formularza:
  1. $data = $_POST['data'];


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:

  1. CREATE TABLE `jakastabela` (
  2. `data` date NOT NULL,
  3. `czas` time NOT NULL,
  4.  


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Darkstorm
post
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:
  1. echo "typ danych: ".gettype($data);


i w efekcie dostałem info:
  1. typ danych: string


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:

  1. else {
  2. $data = $_POST['data'];
  3. //var_dump($data);
  4. mysql_query('SET NAMES utf8');
  5. $zapis = "INSERT INTO seans(id_filmu,data,czas,sala) VALUES ('$film', '$data','$time','$sala' );";
  6. $wykonaj = mysql_query($zapis) or die("Zapytanie do bazy nie powiodło się. " . mysql_error());
  7. echo "Dane zostały zapisane!<br />";
  8. }


Ten post edytował Darkstorm 21.08.2010, 21:46:55
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 10:07