Re: Last visitors
| From: | John Nichel | Date: | Tue, 19 Apr 2005 14:08:56 +0000 |
| Subject: | Re: Last visitors | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-213368@lists.php.net to get a copy of this message | ||
Petar Nedyalkov wrote:
<snip>
You can store only 10 records for each user by using the following logic: mysql> show create table profile_log\G *************************** 1. row ***************************What version of MySQL does that work in? I tried pasting that create table directly into MySQL and get an error... #1064 - 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 ) ENGINE=MyISA Query used : CREATE TABLETable: profile_logCreate Table: CREATE TABLEprofile_log(profile_idint(10) default NULL,user_idint(10) default NULL,timestamptimestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=utf8 1 row in set (0.00 sec) When you create a profile you fill 10 blank records with timestamp 0000-00-00 00:00:00. Then if a user sees a profile: PSEUDO SQL: $SQL = "UPDATE profile_log SET user_id=".$userId." WHERE profile_id=". $profileId." ORDER BY timestamp ASC LIMIT 1"; This way you: 1. automatically get the new timestamp 2. have no more than 10 records per user.
profile_log (
profile_id int( 10 ) default NULL ,
user_id int( 10 ) default NULL ,
timestamp timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE = MYISAM DEFAULT CHARSET = utf8
I can't find a reference to this on MySQL's site...would you have a link to the documentation? Thanks.
--
John C. Nichel
ÜberGeek
KegWorks.com
716.856.9675
john@kegworks.com