![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
Mógłby ktoś podpowiedzieć jak rozwiązać takie problemy z datami:
W tabeli mam kolumnę data, do której przypisane jest date Pierwszy problem pojawia się gdy dopisuję datę do bazy. Jak dodaje dzisiaj to powinno się dodać 2009-01-16 a wpisywane jest 2016-01-20 :/ Chciałbym się jeszcze dowiedzieć w jaki sposób przy wyświetlaniu rekordów z bazy zrobić, żeby data nie pojawiała się jako 2009-01-16 tylko 16.01.2009 Z góry dzięki Pozdrawiam Marcin -------------------- :)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Co do wyswietlania daty to można tak
Co do dodawania daty zobacz tak
Ten post edytował kefirek 16.01.2009, 12:29:33 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy problem pojawia się gdy dopisuję datę do bazy. Jak dodaje dzisiaj to powinno się dodać 2009-01-16 a wpisywane jest 2016-01-20 :/ Jeśli korzystasz z funkcji wstawiającej Today to znaczy, że jest nieprawidłowa data na serwerze Chciałbym się jeszcze dowiedzieć w jaki sposób przy wyświetlaniu rekordów z bazy zrobić, żeby data nie pojawiała się jako 2009-01-16 tylko 16.01.2009 Pokochać manual i korzystać z preg-replace() albo str-replace() Metoda kefirka jest co najmniej głupia (wyważanie otwartych drzwi); -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli korzystasz z funkcji wstawiającej Today to znaczy, że jest nieprawidłowa data na serwerze Pokochać manual i korzystać z preg-replace() albo str-replace() Metoda kefirka jest co najmniej głupia (wyważanie otwartych drzwi); Czemu taki kod niby jest zły ?
Ten post edytował kefirek 16.01.2009, 12:31:02 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
JoShiMa wstawianie wygląda tak:
Kod $_POST['data'] = date('d.m.Y'); try { if($_SERVER['REQUEST_METHOD'] == 'POST') { $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.'', "$user", "$pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $ilosc = $pdo -> exec('INSERT INTO `pozycja` (`adresid`, `frazaid`, `miejsce`, `data` )VALUES( \''.$_POST['adresid'].'\', \''.$_POST['frazaid'].'\', \''.$_POST['miejsce'].'\', \''.$_POST['data'].'\')'); więc data idzie z serwera. Na serwerze jest prawidłowa, bo sprawdzałem to przez proste i pokazuje mi datę dzisiejszą. Kod <?php echo date('d.m.Y'); ?> Nie wiem dlaczego zapisuje ją jako 2016-01-20 -------------------- :)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czemu taki kod niby jest zły ? Bo oba są złe?MySQL -> DATE_FORMAT()
EDIT: Co do daty. MySQL oczekuje jej w formacie 2009-01-16, a Ty podajesz 16.01.2009 - aż się prosi o jakieś błędy. Jeżeli ma to być aktualna data to użyj CURRDATE(), jeżeli dowolna inna, to albo zmień format wprowadzania, albo skorzystaj z czegoś w stylu:
Ten post edytował Crozin 16.01.2009, 12:42:40 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
Crozin dzięki. Faktycznie jak zmieniłem format dodawania daty, żeby był identyczny z tym który jest w sql poprawnie dodaje datę.
Problem mam jeszcze z zamianą tej daty przy wyświetlaniu. Za jej wyświetlenia odpowiada coś takiego: Kod '.$row['data'].' Kombinuje z tym na kilka sposobów i nic mi to nie daje :/ -------------------- :)
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
kefirek dzięki teraz działa poprawnie
![]() A powiecie mi jeszcze jak przy wyświetlaniu rozdzielić datę znacznikiem <br /> Bo teraz mam listę np. - 12.01.2009 - 12.01.2009 - 13.01.2009 - 14.01.2009 - 14.01.2009 A chcę żeby było: - 12.01.2009 - 12.01.2009 - 13.01.2009 - 14.01.2009 - 14.01.2009 A za wyświetlanie odpowiada coś takiego: Kod $stmt = $pdo -> query('SELECT * FROM pozycja LEFT JOIN strona USING (adresid) LEFT JOIN fraza USING (frazaid) ORDER BY data, slowo ASC ');
echo '<ul>'; foreach($stmt as $row) { echo '<li>'.data($row['data']).' - <a href=http://'.$row['adres'].'>'.$row['slowo'].'</a> - '.$row['miejsce'].'</li>'; } $stmt -> closeCursor(); echo '</ul>'; } Ten post edytował BuncolPL 16.01.2009, 13:28:11 -------------------- :)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czemu taki kod niby jest zły ?
Bo można to zrobić w jednej linijce korzystając z gotowych funkcji. No ale jak ktoś chce odkrywać na nowo Amerykę i płodzić takie cudaki, to co ja poradzę? -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzasz czy aktualnie przetwarzny rekord ma dzień inny niż rekrod poprzedni - jeśli tak, to oznacz, że jest inna data i możesz do <li> dodać jakąś klasę, która tworzy margines.
Robisz to mniej-więcej tak:
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Crozin ale po przeanalizowaniu muszę jeszcze trochę inaczej to zrobić. Bo chcę żeby data pokazywała się tylko raz.
Ogólnie mam coś takiego: * 12.01.2009 - fraza1 - 5 * 12.01.2009 - fraza2 - 80 * 12.01.2009 - fraza3- 10 * 13.01.2009 - fraza4 - 20 * 14.01.2009 - fraza5- 12 * 16.01.2009 - fraza1 - 1 * 16.01.2009 - fraza2 - 85 A chcę: * 12.01.2009 - fraza1 - 5 - fraza2 - 80 - fraza3 - 10 * 13.01.2009 - fraza4 - 20 * 14.01.2009 - fraza5 - 12 * 16.01.2009 - fraza1 - 1 - fraza2 - 85 -------------------- :)
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie raz już coś takiego podawałem w sieci, ale znaleźć to teraz...
![]() (to napiszę jeszcze raz)
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 19.12.2008 Skąd: Poland Ostrzeżenie: (0%) ![]() ![]() |
Crozin działa to co podałeś
![]() Mógłbyś również obkomentować swój kod ? Bo uczę się, jeszcze dobrze podstaw nie znam więc wszystkiego nie rozumie ![]() Ten post edytował BuncolPL 16.01.2009, 14:51:07 -------------------- :)
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wersja z komentarzami:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 01:56 |