Autor Zpráva
peta
Profil *
Jak napsat timestamp do tabulky, aby to fungovalo na wz.cz nebo xhosting.cz?
(PHP 4.x)

takhle jsem to zkousel:
CREATE TABLE pphry_users (
user_regdate datetime NOT NULL default '0000-00-00 00:00:00',
user_lastdate TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

/*
`PICKUP_FROM_DTM` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
user_lastdate TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
user_lastdate TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
*/

user_info varchar(255) NOT NULL default ''
) TYPE=MYISAM;

(sem pouzil ruzne apostrofovane i ne, priklad hlasky proto nesedi, ale hlaska je vzdy stejna)

wz.cz hlasi:

[You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, user_info varch] !

xhosting.cz hlasi:
[Va-Bąe syntaxe je nějaká divná bl-Bízko 'CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, /* user_lastdate ' na řádku 13] !
perun
Profil
ja neviem... robim iba v mysql a inych databazach nie, ale tak sa mi zda, ze problem je to "on update", co ja chapem (dufam spravne) ako trigger. A pokial viem, tak mysql triggery nepodporuje (resp. nie ta verzia, ktora je na wz.cz).

Inak, tym, ze polozka bude typu TIMESTAMP, tak sa bude automaticky menit pri kazdom update...
peta
Profil *
perun To presne ten script ma delat. Je to pro MySQL na wz.cz nebo jeste xhosting .
Fakt nechapu, proc to nedela, nasel jsem si na netu asi 10 verzi a vsechny jsou podobne.

Rikas, ze to neumi, fajn, dik. Chtel jsem to pouzit pro sledovani casu usera, jestli je ci neni online. Abych mohl jeho skupine zobrazit, kdy byl naposled online.
Kdy se to updatne? Pokazde, kdyz prijde dotaz na usera? Nebo jen, kdyz se meni udaje u usera?
peta
Profil *
legrace, tak na xhosting nefunguje:

user_lastdate TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP

user_regdate timestamp NOT NULL default CURRENT_TIMESTAMP,

ale funguje
user_regdate timestamp NOT NULL default '0',

cas budu asi sledovat scriptem a zapisovat, dik.
peta
Profil *
Konkretne dobry priklad DB je na
http://phpweb.unas.cz/start.php?smer=skripty#book
- SQL Book (5k)
perun
Profil
> Kdy se to updatne? Pokazde, kdyz prijde dotaz na usera? Nebo jen, kdyz se meni udaje u usera?

Pokial je 'stlpec' typu timestamp, tak cas v prislusnom 'riadku' sa meni pri kazdom update hociktoreho udaju v riadku. Vsetko automaticky.

> pro sledovani casu usera, jestli je ci neni online. Abych mohl jeho skupine zobrazit, kdy byl naposled
> online.

Ja som riesil taky isty problem a siel som na to tak, ze som si vytvoril specialnu tabulku, v ktorej boli vsetky aktualne pripojenia. Princip je asi takyto:

create table current_connections(cc_id int auto_increment primary key, usr_id int, cc_access_time int, cc_last_action_time timestamp)


Po prihlaseni sa do cc_access_time vlozil cas prihlasenia a potom pri akejkolvek akcii na stranke sa cez update aktualizoval cas v cc_last_action_time (cez
 ... set cc_last_action_time = CURRENT_TIMESTAMP ... 
)

Technicky je vsak jedno, akeho typu bude ten stlpec, kedze ja som menil priamo jeho hodnotu.

Po odhlaseni sa vsetky zaznam/y o uzivatelovi z tejto tabulky zrusili (delete).
Toto téma je uzamčeno. Odpověď nelze zaslat.

0