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 ***************************
Table: profile_log
Create Table: CREATE TABLE `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
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.
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 TABLE `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@xxxxxxxxxxxx
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php