Autor Zpráva
eya
Profil *
Ahoj lidi.
V php jsem fakt zacatecnik ale neco malicko umim. No takze k veci, dam priklad:
Mam v mysql databazi redakce, v ni mam tabulku (objekt) novinky a v ni mam sloupec datum. Sloupec datum je typu datetime a v mysql jeho tvar vypada takto: 2005-02-18 22:22:22.
Na strance novinky.php se spojim s databazi, vyberu z tabulky novinky, a chci vypsat to datum. Jenomze ho chci uplne v jinem formatu nez ho mam, nejlepe d.m.Y H:i:s. na Jaknaweb.net mi bylo porazeny sami blbosti takze stale nevim co mam s tim delat. udajne to ma fungovat pres funkci date_format ale taky mi to nejde.
ja to delam takto:

$spojeni = mysql_connect("host","databaze","heslo");
mysql_select_db(databaze, $spojeni);
$vysledek = mysql_query(
"SELECT * FROM tb_novinky ORDER BY id DESC LIMIT 5",
$spojeni);

while ($zaznam = mysql_fetch_array($vysledek) ):

$datum = date_format($zaznam["datum"], "d.m.Y H:i:s");

echo "$datum";

to nefunguje a pise to chybu Call to undefined function: date_format().
diky za pomoc.
Hugo
Profil
Pomoci substr to rozdel na casti a znovu to spoj, tak jak potrebujes. Slo by to udelat i pomoci regularnich vyrazu, ale to by bylo zbytecne pomale.
eya
Profil *
// psal jsem ze neumim nejak moc dobre s php - nevim co je to substr. mohl by si mi prosimte napsat priklad?
Hugo
Profil
Staci nahlednout do manualu:

$year = SubStr ($zaznam["datum"], 0, 4);
$month = SubStr ($zaznam["datum"], 6, 2);
$day = SubStr ($zaznam["datum"], 9, 2);
$time = SubStr ($zaznam["datum"], -8);

$datum = $day.'.'.$month.'.'.$year.' '.$time;

Snad tam neni chyba (netestoval sem to)
Leo
Profil
Nechte pracovat taky trochu MySQL:

SELECT DATE_FORMAT(datum,'%d.%m.%Y %H:%i:$S') AS mujdatum FROM novinky

Nejspis si pletete funkce PHP s funkcemi MySQL

Leo
eya
Profil *
#Leo.
ja ale z novinek netaham pouze datum, ale i dalsi sloupce. !!
jak sem rikal sem v phpzacatecnik. #hugo - neni to trosku zdelseny zapis? nelze to nejak zjednodusit??
Leo
Profil
No tak si tam ty dalsi sloupce pridate podle potreby ne? Treba

SELECT id, text, autor, DATE_FORMAT(datum,'%d.%m.%Y %H:%i:$S') AS mujdatum FROM novinky

Leo
eya
Profil *
#hugo navic to funguje spatne :\
Hugo
Profil
eya

Slo by to zjednodusit, ale takhle je to aspon trochu prehledne. Ale asi nejlepsi bude to reseni od Lea.
Hugo
Profil
eya

Muzes to nejak specifikovat?? Co to vypisuje?
eya
Profil *
:( proboha uz 2 dny resim tudle "prkotinu". copak nikdo nezna zpusob jak to treba jednoduse udelat na jeden radek? od Lea to asi nejde jelikoz ja beru VICE sloupcu a ne JEN to datum !
nechcete prosim napsat priklad? diky ....
eya
Profil *
vypisuje to toto: 4 .5-.2005 17:28:41
ale prijde mi to stejne hodne zbytecne dat to na 5 radku ...
Hugo
Profil
eya

Pokud chces neco delat v php, tak se to MUSIS aspon trochu naucit. Reseni od Lea funguje. Vysvetlil ti to o par prispevku vys. Ja jsem se tam jen sekl v cislech, stacilo trochu experimentovat. Spravne je to takto:

<?php
$zaznam["datum"] = '2005-02-18 22:22:22';
$year = SubStr ($zaznam["datum"], 0, 4);
$month = SubStr ($zaznam["datum"], 5, 2);
$day = SubStr ($zaznam["datum"], 8, 2);
$time = SubStr ($zaznam["datum"], -8);

print $datum = $day.'.'.$month.'.'.$year.' '.$time;
?>

Tato diskuze IMHO neni nahrada manualu, takze zkus trochu studovat.
Leo
Profil
Ctete laskave co pisu, vic sloupcu jsem pred chvili poslal. A prestante se rozcilovat a misto to se naucte zaklady SQL (napriklad jak z tabulky vypsat vic sloupcu pripadne je prejmenovat). Leo
Michalek
Profil
eya:
leo napsal
SELECT id, text, autor, DATE_FORMAT(datum,'%d.%m.%Y %H:%i:$S') AS mujdatum FROM novinky

co chces vic?
Michalek
Profil
jsem pomalej...
eya
Profil *
jojojo diky moc lidi. a to jako musim vzdycky vypisovat vsechny sloupce ? neexistuje neco jako SELECT * date_format(datum ...) ... FROM novinky ...
?
Leo
Profil
Existuje, da se napsat

SELECT *, date_format() as mujdatum

ale pak tam budete mit udaj o datu dvakrat (jako datum v puvodnim formatu a jako mujdatum v pozadovanem). V naproste vetsine pripadu nepotrebujete znat vsechny sloupce, a z databaze se ma tahat jen to, co potrebujete. Leo
eya
Profil *
"SELECT id, DATE_FORMAT(datum,'%d.%m.%Y %H:%i:%s') AS datum, zeme, nadpis, obrazek, obsah_velky, obsah_maly, odkazy, autor_jmeno, autor_nick, autor_prijmeni FROM tb_novinky ORDER BY id DESC LIMIT 5",
nefunguje to ... nevite v cem by mohla byt chyba??
eya
Profil *
aha uz to funguje nize mi chybel strednik
diky lidi moc !
printf
Profil
ještě bych dodal (pro ostatní), že to datum se dá v PHP formátovat elegantněji:

např:

SScanF ($Datum,"%04d-%02d-%02d %02d:%02d:%02d", $Now["year"], $Now["mon"], $Now["mday"], $Now["hours"], $Now["minutes"], $Now["seconds"]);

$Prepared = SPrintF ("%02d. %02d. %04d, %02d:%02d", $Now["mday"], $Now["mon"], $Now["year"],$Now["hours"], $Now["minutes"]);
CyberTom
Profil *
SELECT DATE_FORMAT(datum,'%d.%m.%Y %H:%i:$S') AS datum, novinky.* FROM novinky;
Toto téma je uzamčeno. Odpověď nelze zaslat.