CREATE TABLE `counter` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(250) NOT NULL,
`metainfo` text NOT NULL,
`logdate` datetime NOT NULL,
`file` text NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `counter_city` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`countryCode` varchar(5) NOT NULL,
`country` varchar(50) NOT NULL,
`state` varchar(50) NOT NULL,
`city` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `countryCode` (`countryCode`,`country`,`state`,`city`)
);
CREATE TABLE `counter_city_todo` (
`ip_num` int(10) unsigned NOT NULL,
`active` tinyint(1) NOT NULL,
`done` tinyint(1) NOT NULL,
`FKCity` int(11) DEFAULT NULL,
PRIMARY KEY (`ip_num`)
);
<?php
$ip = $_SERVER["REMOTE_ADDR"];
$date = date("Y-m-d H:i:s");
$meta = $_SERVER["HTTP_USER_AGENT"];
$data = $_SERVER["PHP_SELF"];
$conn = mysql_connect("localhost","yourdbuser","yourpassword");
mysql_select_db("ksmm",$conn);
mysql_query("INSERT into counter (id,ip,metainfo,logdate,file) VALUES (NULL,'".$ip."','".$meta."','".$date."','".$_SERVER["REQUEST_URI"]."')");
mysql_close($close);
?>
CREATE VIEW counter_processed
AS
SELECT
`yourDBName`.`counter`.`id` AS `id`,
`yourDBName`.`counter`.`ip` AS `ip`,
`yourDBName`.`counter`.`metainfo` AS `metainfo`,
cast(`yourDBName`.`counter`.`logdate` as date) AS `date`,
concat(right(concat('0',hour(`yourDBName`.`counter`.`logdate`)),2),':00:00') AS `Hour`,
concat(concat(concat(right(concat('0',hour(`yourDBName`.`counter`.`logdate`)),2),':'),
right(concat('0',minute(`yourDBName`.`counter`.`logdate`)),2)),':00') AS `Minute`,
concat(concat(year(`yourDBName`.`counter`.`logdate`),'-M'),right(concat('0',
month(`yourDBName`.`counter`.`logdate`)),2)) AS `Month`,
year(`yourDBName`.`counter`.`logdate`) AS `Year`,
cast(cast(`yourDBName`.`counter`.`logdate` as time) as varchar(20)) AS `time`,
(case when (`yourDBName`.`counter`.`metainfo` like '%Android%') then 'Android'
when (`yourDBName`.`counter`.`metainfo` like '%Linux%') then 'Linux'
when (`yourDBName`.`counter`.`metainfo` like '%Windows%') then 'Windows'
when (`yourDBName`.`counter`.`metainfo` like '%Apple%') then 'Apple'
when (`yourDBName`.`counter`.`metainfo` like '%Mac OS%') then 'Apple'
when (`yourDBName`.`counter`.`metainfo` like '%Bot%') then 'Bot'
else 'unknown' end) AS `OS`,
(case when (`yourDBName`.`counter`.`metainfo` like '%MSIE%') then 'Internet Explorer'
when (`yourDBName`.`counter`.`metainfo` like '%Opera%') then 'Opera'
when (`yourDBName`.`counter`.`metainfo` like '%Bot%') then 'Bot'
when (`yourDBName`.`counter`.`metainfo` like '%Firefox%') then 'Firefox'
when (`yourDBName`.`counter`.`metainfo` like '%Chrome%') then 'Chrome'
when (`yourDBName`.`counter`.`metainfo` like '%Safari%') then 'Safari'
else 'unknown' end) AS `Browser`,
`yourDBName`.`counter`.`file` AS `file`,
`ci`.`countryCode` AS `countryCode`,
`ci`.`country` AS `country`,
`ci`.`state` AS `state`,
`ci`.`city` AS `city`
FROM `yourDBName`.`counter`
LEFT JOIN `yourDBName`.`counter_city_todo` `todo` on inet_aton(`yourDBName`.`counter`.`ip`) = `todo`.`ip_num`
LEFT JOIN `yourDBName`.`counter_city` `ci` on `todo`.`FKCity` = `ci`.`id`;