Autor | Zpráva | ||
---|---|---|---|
Martin Pelák Profil * |
#1 · Zasláno: 26. 10. 2004, 23:15:05
Ahoj,
mam problem.Potřeboval bych uložit do MySQl z PHP datum a čas.Nevim jak to uložit do typu Datetime.Myslel jsem takto, ale nějak mi to nefachá.Mělo by to být uloženo v tomhle formátu YYYY-MM-DD HH:MM:SS $dotaz = "insert into zs_gb values(0,'{$_SESSION["id"]}'," . date("Y-m-d H:i:s") . ",'{$_POST["zprava"]}')"; Díky moc |
||
Yuhů Profil |
#2 · Zasláno: 27. 10. 2004, 09:33:44
Hm, častá chyba. Datum musíš do databáze posílat jako řetězec (v uvozovkách nebo apostrofech), nikoli jako číslo.
Takže se možná spletu, ale zkusil bych tohle: $dotaz = "insert into zs_gb values(0,'{$_SESSION["id"]}','" . date("Y-m-d H:i:s") . "','{$_POST["zprava"]}')"; pokud nevidíš změnu, tak tam jsou dva apostrofy navíc. |
||
Honza Hučín Profil |
#3 · Zasláno: 27. 10. 2004, 09:38:04
Případně, pokud posíláš aktuální čas a datum, by mělo jít použít funkci now(), ta je přímo v mysql a vkládá se bez apostrofů.
|
||
Martin Pelák Profil * |
#4 · Zasláno: 27. 10. 2004, 11:33:21
Díky moc,
fungujefo OK!Fakt díky. |
||
Martin Pelák Profil * |
#5 · Zasláno: 27. 10. 2004, 15:17:27
Mam ještě jeden dotaz...kde se dá něco dočíst o spojování tabulek?Z intervalu jsem toho moc nevyčetl.
Vytvořil jsem si tyhle tabulky CREATE TABLE `zs_gb` ( `id` tinyint(3) NOT NULL auto_increment, `id_uzivatele` tinyint(3) NOT NULL default '0', `datum` datetime NOT NULL default '0000-00-00 00:00:00', `zprava` text NOT NULL, PRIMARY KEY (`id`) ) CREATE TABLE `zs_uzivatele` ( `id` tinyint(3) NOT NULL default '0', `nick` varchar(10) NOT NULL default '', `password` varchar(10) NOT NULL default '', `e-mail` varchar(30) NOT NULL default '', `web` varchar(30) NOT NULL default '', `icq` int(9) NOT NULL default '0', PRIMARY KEY (`id`) ) do tabulky zs_gb se uloží jen id uzivatele.A ja potřebuju aby se při vypsání zs_gb nahradilo to id uzivatele nickem z zs_uzivatel..kde se da něco dočíst..díky |
||
Honza Hučín Profil |
#6 · Zasláno: 27. 10. 2004, 15:40:18 · Upravil/a: Honza Hučín
Propojování tabulek se dělá v příkazu SELECT, a to klauzulí JOIN.
Například u tebe by to bylo SELECT datum, zprava, nick FROM zs_gb JOIN zs_uzivatele ON zs_gb.id_uzivatele=zs_uzivatele.id; (opravil HH - původně bylo chybně ...=zs_uzivatele.id_uzivatele) Viz též [url=http://dev.mysql.com/doc/mysql/en/SELECT.html ]http://dev.mysql.com/doc/mysql/en/SELECT.html [/url] http://dev.mysql.com/doc/mysql/en/JOIN.html |
||
Martin Pelák Profil * |
#7 · Zasláno: 27. 10. 2004, 15:51:17
Takhle rychlou odpoveď jsem nečekal, ale přesně takhle jsem to zkoušel a nic........................
ted jsme to vyzkoušel znovu a nic...jsem v koncích.Když zadám, že chci vypsat jenom tabulku zs_gb tak to vypíše.Nevim v čem je problém |
||
Martin Pelák Profil * |
#8 · Zasláno: 27. 10. 2004, 15:56:44
Už to mam je to takhle SELECT datum, zprava, nick FROM zs_gb JOIN zs_uzivatele ON zs_gb.id_uzivatele=zs_uzivatele.id;
DÍKY |
||
SuE Profil |
#9 · Zasláno: 27. 10. 2004, 16:00:36 · Upravil/a: SuE
sem se špatně koukla, tys už to mezitim vyřešil, tak nic, sry, smazněte mě, pls
|
||
Yuhů Profil |
#10 · Zasláno: 28. 10. 2004, 15:16:14
jenom jedna prosba, Martine. Vždy, když řešíš nový problém, založ prosím nové téma.
|
||
Martin Profil * |
#11 · Zasláno: 29. 10. 2004, 23:49:51
Jasný...teď už to vim...sorry
|
||
www.oknet.sk Profil * |
ja to prosto riesim tak, ze nastavim v tabulke format varchar a nastavim mu dlzku 19 znakov (to je presne YYYY-MM-DD HH:MM:SS).
Potom si cez php zistim aktualny cas ($datum = date("Y-m-d h:i:s");) a ulozim to do spominaneho pola. |
||
llook Profil |
#13 · Zasláno: 31. 10. 2004, 02:20:42
www.oknet.sk: Má to nějaké výhody? IMHO s takovým řetězcem nelze pracovat jako s datetimem. Například porovnávání. Jak vybereš všechny články z května? S typem datetime asi takhle:
SELECT * FROM table WHERE (datum > "2004-04-30 23:59:59") AND (datum < "2004-06-01 00:00:00")
Ale s řetězcem nevím. |
||
llook Profil |
#14 · Zasláno: 31. 10. 2004, 02:24:14
Ale jo, teď mě to trklo, daný problém by šlo s řetězcem docela snadno:
WHERE datum LIKE "2004-05-%" , ale jiné problémy by šli hůř. Krom toho, když vezmu konkrétně MySQL, pak ti to ve VARCHARu zabere 20 bytů (délka + 1), zatímco v datetime jenom 8 bytů.
|
||
Časová prodleva: 2 měsíce
|
|||
zdick Profil * |
#15 · Zasláno: 7. 1. 2005, 21:05:35
ja to resim tak, ze do db ukladam casovy razitka time() a zpracovavam to v php pomoci fce date.. Je to good, zadnej bordel v tom nemam a fajn se s tim da pracovat..
|
||
Časová prodleva: 21 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0