Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: data dodania tekstu
Forum PHP.pl > Forum > PHP
MalyKazio
Witam.

Pytanie może i banalne ale przejrzeniu manuala do mySql i php jestem trochę zagubiony. zrobiłem prosty formularz dodający pare danych do bazy. Chciałem dodać jeszcze pole w bazie, w którym zapisana będzie data dodania tekstu (tylko data - dzien-miesiac-rok). Czy w związku z tym ustawić dla tej kolumny tabeli rodzaj na DATE czy zostawić np VARCHAR? Której funcji php użyć do wyciągnięcia daty? date czy może time i zapisać w bazie te sekundy od 1970 r?
Możecie coś poradzić żeby nie było żadnych problemów na linii php-mysql?
mike
Pole w bazie powinno być typu DATE
Funkcja MySQL do daty obecnej: NOW()
MalyKazio
Hmm... coś mi nie wyszło z tym NOW(). Chyba najłatwiej byłoby wykorzystać timestamp, czy jak to się nazywa. Chodzi mi o te sekundy od 1970 r. Czy obojętne jest w jakego typu polu bazy będę przechowywał timestamp? Chyba to rozwiązanie jest najbardziej elastyczne i pozwala na wyświetlanie daty w różnych formatach.
TomASS
Czytaj proszę ze zrozumieniem to co mike napisał:
Cytat
Pole w bazie powinno być typu DATE

Będziesz miał w nim date w postaci np. 2006-06-16

Dalej przy dodawaniu tekstu, zapytanie możesz skonstruować tak:
  1. INSERT
  2. INTO `zlecenia`
  3. ( `tekst`,`pole_data` ) VALUES ('jakis_tekst',NOW());

Wtedy w "pole_data" zostanie wpisana bierząca data. Później aby wyciągnąć ją z bazy w dowolnym formacie użyj DATE_FORMAT:
  1. SELECT DATE_FORMAT(`pole_data`,'%e.%m.%Y')AS DATA
  2. FROM `zlecenia`;


Masz to co chciałeśsmile.gif
Maslav
Odświeżę temat bo mam podobny problem.

Datę dodania wpisu do bazy chcę trzymać w postaci uniksowego znacznika czasu tak aby sobie wyciągać tą datę do rss'a. Ale gdy trzymamy datę w polu DATE i ma ona format y-m-d to chyba nie jest przechowywana w nim godzina.
nospor
Cytat
Ale gdy trzymamy datę w polu DATE i ma ona format y-m-d to chyba nie jest przechowywana w nim godzina.
Masz rację smile.gif Ale jakie masz pytanie w związku z tym?
Jak chcesz miec i godzine to zaloż pole typu DATETIME lub TIMESTAMP
Maslav
Hmm no niby tak, ale timestamp to nie to samo co czas unixa.

Uparłem się na ten czas unixa, bo teraz mam daty w formacie d-m-y i mam już metodę jak je wszystkie pozamieniać. Chyba nie ma specjalnego datatypu dla czasu unixa więc pozostaje mi go trzymać pod tinytextem.

Czy źle myślę?
MalyKazio
Cytat
Wtedy w "pole_data" zostanie wpisana bierząca data. Później aby wyciągnąć ją z bazy w dowolnym formacie użyj DATE_FORMAT:
  1. SELECT DATE_FORMAT(`pole_data`,'%e.%m.%Y')AS DATA
  2.  
  3. FROM `zlecenia`;


Wszystko dziala. Mam jednak pytanie. Co zrobić, żeby oddzielnie wyciągnąć dzien, miesiac i rok, żeby każda ta rzecz była w innej zmiennej zapisana? Trzeba robić trzy zapytania np.

  1. SELECT DATE_FORMAT(`pole_data`,'%e')AS DATA
  2. FROM `zlecenia`;

a potem drugie z zamienionym %e na %m? Moze da sie to w jednym zapytaniu zrobic?
babejsza
  1. SELECT
  2.  
  3. DATE_FORMAT(`pole_data`,'%e')AS day,
  4. DATE_FORMAT(`pole_data`,'%m')AS month,
  5. DATE_FORMAT(`pole_data`,'%Y')AS year
  6. FROM `zlecenia`
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.