Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Data w MySQL wyświetla 0000-00-00
stanley4043
post 9.04.2016, 00:21:17
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.04.2016

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


Witam serdecznie, bardzo proszę o pomoc bo nie mogę sobie poradzić z jedną rzeczą. Otóż problem jest taki że podczas przesyłania daty przez skrypt php do bazy danych wyświetlają one mi się w bazie jako 0000-00-00. Najbardziej mnie dziwi to że przy formacie kolumny data typu "date" to powinienem ją przesyłać w formacie YYYY-MM-DD, no i tak ją przesyłam. Niestety w bazie jest już coś innego. Nie wiem czy to ważne, ale używam datepickera i on wyświetla mi datę w postaci DD.MM.YYYY. Poniżej pokaże kod którym konwertuje datę na tą pożądaną przez MySQL, czyli format YYYY-MM-DD

  1. $dzien_w_pom = explode(".",$_POST['dzien_w']); //pobierana data z formularza i od razu dzielona na tablice
  2. $dzien = $dzien_w_pom[0];
  3. $mies = $dzien_w_pom[1]; //Not tutaj przypisuje sobie do zmiennych elementy tablicy
  4. $rok = $dzien_w_pom[2];
  5. $date = $rok.'-'.$mies.'-'.$dzien; //tutaj oczywiście łączenie w celu osiągnięcia formatu YYYY-MM-DD


Specjalnie echem wyświetlałem date od razu przed zapytaniem poniżej którym wysyłam dane do bazy, no i na ekranie odpowiednia data się wyświetla w formacie YYYY-MM-DD zaznaczę że wszystkie inne dane zostają dobrze przesłane.

  1. $dodaj_pracownika = "INSERT INTO wizyty (miejsce_w, nr_pokoju, dzien_w, godz_od, minuta_od, godz_do, minuta_do,id_p) VALUES ('$miejsce_w','$pokoj','$date','$godz_od','$minuta_od','$godz_do','$minuta_do','$id_p')";
  2. $wprowadz = mysqli_query($conn,$dodaj_pracownika);


Dodam iż szukałem odpowiedzi w Internecie, niestety wszystko sprowadza się do tego że znalazłem tylko porady że musi być to zmienna w postaci YYYY-MM-DD, co niestety tutaj na nic się zdaję bo ową już dawno mam, jeśli jest na tym forum rozwiązanie tego problemu i ktoś może wie gdzie, bardzo proszę o przesłanie liku, bo niestety ja nie mogę takiego tematu znaleźć
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
sazian
post 9.04.2016, 15:41:25
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


pokaż echo $dodaj_pracownika;
Go to the top of the page
+Quote Post
stanley4043
post 9.04.2016, 17:56:24
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.04.2016

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


Dziękuję za odpowiedz. Proszę, to jest to co wyświetliło echo:
  1. INSERT INTO wizyty (miejsce_w, nr_pokoju, dzien_w, godz_od, minuta_od, godz_do, minuta_do,id_p) VALUES ('3','','2016-04-14','07','00','07','15','29')


Ten post edytował stanley4043 9.04.2016, 17:59:38
Go to the top of the page
+Quote Post
sazian
post 9.04.2016, 18:33:26
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


dziwne powinno działać,
pokaż jeszcze strukturę bazy.

Sprawdź czy to zadziała
  1. CREATE TABLE test
  2. (
  3. id INT AUTO_INCREMENT PRIMARY KEY,
  4. dzien DATE
  5. );
  6. INSERT INTO test VALUES (NULL,'2016-04-14');
  7. SELECT * FROM test
  8.  
Go to the top of the page
+Quote Post
stanley4043
post 9.04.2016, 18:41:39
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.04.2016

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


Ok to tak, teraz mi to działa. Szczerze to pojęcia nie mam jakim cudem, jak nic nie zmieniałem w pliku php, jedynie to kilka razy zmieniłem typ w bazie z date na varchar i później z powrotem i tak chyba z 2 razy bo myślałem że może coś źle tam zrobiłem, jakimś cudem teraz działa. Temat raczej do zamknięcia, choć jeśli ktoś miałby jakiś pomysł jaki jest tego powód że bez żadnej ingerencji w plik php a tylko przy zmianach typu w bazie kilka razy to 'samo' się naprawiło, czy przyczyną może być jakiś zawias Apache czy MySQL. Korzystam z XXAMP, gdyby co.
Go to the top of the page
+Quote Post
sazian
post 9.04.2016, 18:49:07
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


tak swoją drogą to tego potworka na przerabianie daty mógłbyś zmienić
  1. if(($d=strtotime($_POST['dzien_w']))!==false)
  2. {
  3. $date = date("Y-m-d",$d);
  4.  
  5. }
Go to the top of the page
+Quote Post
stanley4043
post 9.04.2016, 19:01:57
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.04.2016

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


Cytat(sazian @ 9.04.2016, 19:49:07 ) *
tak swoją drogą to tego potworka na przerabianie daty mógłbyś zmienić
  1. if(($d=strtotime($_POST['dzien_w']))!==false)
  2. {
  3. $date = date("Y-m-d",$d);
  4.  
  5. }


Kurcze no wiem, miałem to napisać w jednej linijce nawet tylko już tak rozmyślałem nad tą datą że zrobiłem to tak topornie jak zauważyłeś. Btw fajna sprawa z tym strtotime, dziekuję wink.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:46