Autor Zpráva
Petr789
Profil *
Zdravím, ukládám do mysql aktuální datum pomocí now(), mám ale problém s vytáhnutým.
Nevím jak to mám zformátovat, aby mi to vracelo tenhle formávat data a času - 18.2.2010 17:38

Našel jsem si tohle: preg_replace('~^([0-9]+)-0?([0-9]+)-0?([0-9]+)~', '\\3.\\2.\\1', $row["vlozeno"]);
Což skoro vyhovuje, ale zobrazuje to i se sekundama (tedy 18.2.2010 17:38:43) a já netuším jak ji odstranit :)
V tom kódu se vůbec nevyznám a nikde sem nenašel žádnej "manuál" abych poznal která řást zobrazuje sekundy, ani na php.net.
Neví někdo jak na to? :)
Alphard
Profil
MySQL :: MySQL 5.0 Reference Manual :: 11.6 Date and Time Functions
Keeehi
Profil
SELECT DATE_FORMAT(slupec_s_datumem,'%e.%c.%Y %k:%i');
Petr789
Profil *
Jenže tohle mění formát v databázi ne? Já to chci zformátovat až při výstupu, protože ty sekundy nechci zobrazovat jen při výstupu pro uživatele, v administraci je chci.
Alphard
Profil
Petr789:
Základní princip: select nemůže měnit žádná data.
Petr789
Profil *
Dobrá, tak co s tím mám potom dělat?
Teď mám
$clanky = mysqli_query ($db_spojeni, 'SELECT * FROM posts ORDER BY id DESC');
while ($row = mysqli_fetch_array($clanky))
	{
        echo '<b>Vloženo:</b> ',$row['datum'],'</p>';
        }

Jak to tam mám přesně napsat? Nevím kde dělám chybu, ale pokaždý mi to někde vyhodí Parse error.

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Keeehi
Profil
$clanky = mysqli_query ($db_spojeni, 'SELECT * FROM posts ORDER BY id DESC');
Místo hvězdičky si musíš vypsat všechny sloupce ručně a místo sloupce datum napíšeš DATE_FORMAT(datum,'%e.%c.%Y %k:%i') as datum
Alphard
Profil
Třeba
SELECT *, DATE_FORMAT(datum,'%e.%c.%Y %k:%i') datum_f FROM posts ORDER BY id DESC

$row['datum_f']

Ale lepší by bylo vyjmenovat všechny potřebné sloupce.
Petr789
Profil *
Sloupce jsou - nadpis, text, autor, datum
Takže by to mělo být takto?

$clanky = mysqli_query ($db_spojeni, 'SELECT nadpis,text,autor,DATE_FORMAT(datum,'%e.%c.%Y %k:%i') datum_f FROM posts ORDER BY id DESC'


Tohle mi háže Parse error: parse error, unexpected '%' in C:\PHPWebServer\http_docs\01\vzhled\main.php on line 25 (řádek 25 je tady ten řádek)
Alphard
Profil
Když používáte MySQLi, PHP se snaží dosadit za %x hodnotu. Zkuste to zdvojit.
Omlouvám se, už jsem asi slepý.

To date_f je alias, můžete zvolit cokoliv, jen se nesmí shodovat s jiným sloupcem a nesmí to být vyhrazené slovo.
Petr789
Profil *
Ani zdvojené % nepomáhají, stále stejná chyba. Nechápu.
Keeehi
Profil
Alphard:
problém je s uvozovkami (apostrofy)

Petr789
Dá se to vyřešit třeba takto:
$clanky = mysqli_query ($db_spojeni, "SELECT nadpis,text,autor,DATE_FORMAT(datum,'%e.%c.%Y %k:%i') datum_f FROM posts ORDER BY id DESC");
Petr789
Profil *
Ok, díky moc. Tentokrát už se aspoň načte stránka, ale místo dat z databáze to zobrazuje Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\PHPWebServer\http_docs\01\vzhled\main.php on line 26

řádek 26 je takovej
while ($radek = mysqli_fetch_array($inzeraty))
{
echo *tady je formátování výstupu*
}


Řádek 26 je ten - while ($radek = ...
Před tou změnou s datumem nebyl problém, až teď, tak to asi bude souviset s tím.
Majkl578
Profil
Petr789:
Tipuji, že SQL dotaz obsahuje chybu a funkce mysqli_query vrací false.
Alphard
Profil
Petr789:
Takhle vám těžko někdo poradí. Samotné vyřešení formátování data je otázka ani ne minuty, ale na fóru se to strašně protahuje. Vložte ten dotaz do nějakého MySQL správce a zjistěte, jestli se nevypíše nějaké chyba. Stejně tak si můžete chybu vypsat v PHP, zkusit var_dump($radek) apod.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0