Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> data dodania tekstu, problem z zastosowaniem funkcji
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


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?
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Pole w bazie powinno być typu DATE
Funkcja MySQL do daty obecnej: NOW()
Go to the top of the page
+Quote Post
MalyKazio
post
Post #3





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


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.
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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ś(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Maslav
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 6.02.2004

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale jakie masz pytanie w związku z tym?
Jak chcesz miec i godzine to zaloż pole typu DATETIME lub TIMESTAMP
Go to the top of the page
+Quote Post
Maslav
post
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 6.02.2004

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


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ę?
Go to the top of the page
+Quote Post
MalyKazio
post
Post #8





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


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?
Go to the top of the page
+Quote Post
babejsza
post
Post #9





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


  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`
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.12.2025 - 23:19