Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Data dodania do bazy
Forum PHP.pl > Forum > Przedszkole
uki0008
Witam piszę pewien mod do php-fusion.
W php dopiero raczkuje.

A więc mam pewien formularz który dodaje mi do bazy mp3, nazwa + link,
chcę żeby później jak już będę wypisywał rezultaty z bazy była też data kiedy ten wpis został dodany.
Jak to osiągnąć?

Z góry dzięki za pomoc.
Fifi209
Cytat(uki0008 @ 26.05.2010, 21:58:06 ) *
Witam piszę pewien mod do php-fusion.
W php dopiero raczkuje.

A więc mam pewien formularz który dodaje mi do bazy mp3, nazwa + link,
chcę żeby później jak już będę wypisywał rezultaty z bazy była też data kiedy ten wpis został dodany.
Jak to osiągnąć?

Z góry dzięki za pomoc.


Daj sobie pole typu: DATETIME w bazie i przy dodawaniu: użyj
  1. NOW()
lobopol
Dodaj w tabeli trzymającej pliki pole z datą (np. timestamp) z defaultową wartością CURRENT_TIMESTAMP
zend
Lepszy timestamp bo możesz domyślne ustawić "current time" i nie będziesz się musiał przejmować NOW() w insertach smile.gif
Fifi209
Cytat(zend @ 26.05.2010, 22:14:25 ) *
Lepszy timestamp bo możesz domyślne ustawić "current time" i nie będziesz się musiał przejmować NOW() w insertach smile.gif

Przy wyświetlaniu będziesz później marnował czas procesora, aby timestamp zamienić na datę? ;]
zend
Format timestampa "2010-05-25 17:48:27" smile.gif Zawsze można usunąć ostatnie kilka znaków albo kilka pierwszych znaków i będziemy mieli to co chcemy, ale to sytułacja identyczna z datatime smile.gif
Fifi209
Cytat(zend @ 26.05.2010, 22:18:57 ) *
Format timestampa "2010-05-25 17:48:27" smile.gif Zawsze można usunąć ostatnie kilka znaków albo kilka pierwszych znaków i będziemy mieli to co chcemy, ale to sytułacja identyczna z datatime smile.gif


Mój błąd, zasugerowałem się UNIX_TIMESTAMP() który zwraca w sekundach.
thek
To ja podam jeszcze jeden myk związany z timestamp. Wcale nie musimy uciekać się do funkcji now(), czy formatowania daty w php. Wystarczy w zapytaniu użyć dla kolumny typu timestamp wartości NULL. Działa ona na tej samej zasadzie co CURRENT_TIMESTAMP i jest to cecha mocno przydatna, gdyż domyślnie nie można podczas definiowania struktury ustawić dwóm kolumnom CURRENT_TIMESTAMP, choć nieraz chcielibysmy jednej ustawić URRENT_TIMESTAMP a innej on update CURRENT_TIMESTAMP, a nie jest to niestety możliwe.
uki0008
Ok.

Tylko teraz otrzymuje niesformatowaną datę "20100526231659"
Jak to sformatować?
thek
20100526231659 -> a nie widać, że to 2010-05-26 23:16:59 ? W php masz przecież gotowce do obróbki daty.
uki0008
Widać smile.gif
Ale jak zaznaczyłem ja dopiero zaczynam z php smile.gif
Zmieniłem w bazie na DATETIME i jest ok smile.gif

Witam,
niestety znowu jest problem:
W dalszym ciągu wyświetla mi datę bez formatowania.

Tak wygląda kod odpowiedzialny za wyświetlanie ($row['czas'] :
  1. $query = "select * from electro ORDER BY id DESC";
  2. $result = mysql_query($query);
  3. $num_results = mysql_num_rows($result);
  4. $miejsce=1;
  5.  
  6. print "<p>Ilość utwor&oacute;w Electro/Haus w bazie danych: ".$num_results."</p>";
  7. for ($i=0; $i <$num_results; $i++)
  8. {
  9. $row = mysql_fetch_array($result);
  10. $link = stripslashes($row["link"]);
  11. $zapytanie = "select czas from electro";
  12. $zapytanie2 = mysql_query($zapytanie);
  13.  
  14. print "<div class='podklad'><div class='podklad_padding'>";
  15. print "<img src='".THEME."/images/kluka.png' style='margin-right:11px;'><a href='http://$link'>".stripslashes($row['tytul'])."</a><br>";
  16. print "Dodał: ".stripslashes($row['nick']).", dnia: ".stripslashes($row['czas']).", Gatunek: ".stripslashes($row['gatunek']);
  17. print "</div></div>";


Nie mogę se poradzić z sformatowaniem tego.
lobopol
http://php.net/manual/en/function.date.php
uki0008
Już tam byłem.
Ale jak zaznaczyłem to mój pierwszy skrypt w php i nie bardzo umiem to wykorzystać.
zend
Jakiej daty oczekujesz?
  1. date( 'Y-n-d' , $row['czas']); //przykład jak używać

Edit:
Pomyliłem kolejność parametrów w funkcji wstydnis.gif Sorry smile.gif
uki0008
Chcę osiągnąć:
RRRR-MM-DD 00:00:00

gdy użyłem kodu podanego przez Ciebie nadal mam to samo.
zend
Cytat(fifi209 @ 26.05.2010, 22:17:01 ) *
Przy wyświetlaniu będziesz później marnował czas procesora, aby timestamp zamienić na datę? ;]

Kurcze, fifi09 pisał o tym żeby unikać formatowania przy wyświetlaniu, a Ty dalej swoje, użyj timestampa i będziesz miał to odrazu, bez formatowania i nieoptymalnego formatowania przy wyświetlaniu
uki0008
tz.?

W bazie mam ustawione tą kolumnę na timestampa
zend
Skoro masz timestampa to masz właśnie ten format o który Ci chodzi, jeśli nie, to skorzystaj z kodu który podałem wcześniej, a jeśli chcesz mieć wynik z czasem to wyszukaj w manualu date jak formatować czas i dopisz do kodu który podałem
uki0008
Kombinuje tak i siak i za cholery mi to nie działa.

Jest jakiś inny sposób żeby otrzymać choć by samą datę dodania bez godziny?
zend
Zmień typ kolumny na DATE a w insertach date( 'Y-n-d' , time());
uki0008
Tylko czy to czasem nie będzie aktualna data zamiast daty dodania wpisu do bazy?
Fifi209
Cytat(uki0008 @ 27.05.2010, 22:30:10 ) *
Tylko czy to czasem nie będzie aktualna data zamiast daty dodania wpisu do bazy?

Data dodania wpisu to raczej jest aktualna data. ;p

Cytat(zend @ 27.05.2010, 22:22:09 ) *
Zmień typ kolumny na DATE a w insertach date( 'Y-n-d' , time());

Cytat(fifi209 @ 26.05.2010, 22:12:10 ) *
Daj sobie pole typu: DATETIME w bazie i przy dodawaniu: użyj
  1. NOW()

uki0008
Cytat(fifi209 @ 27.05.2010, 22:36:42 ) *
Data dodania wpisu to raczej jest aktualna data. ;p


Ale mi chodzi raczej o to że ona uaktualnia się z datą systemową. smile.gif
zend
Cytat(uki0008 @ 27.05.2010, 23:05:12 ) *
Ale mi chodzi raczej o to że ona uaktualnia się z datą systemową. smile.gif


Ustaw sobie strefę czasową taka jak Ci pasuje i po problemie, zresztą wszystko korzysta z czasu systemowego więc nei wiem w czym problem, jeśli chcesz mechanizm do ustawiania daty to poszukaj o JQuery i DatePicker

Data będzie się uaktualniać tylko jak podasz nową datę w zapytaniu UPDATE
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.