开发ecshop大概有半年多时间了,每次改的功能也没有做总结和记录,今天添加完一个功能,记录一下吧,省得以后忘记又要麻烦去查找。
需求:在后台菜单-报表统计-下面添加-用户情况-的功能,包括:每周新增注册用户,每周累积注册用户,活跃用户-周内至少登陆1次,每月访问量等等。
第一步:建立数据库的表
说明:个人本地数据库是:eshop,新建表名:ecs_user_situation。
第二步:建立存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `eshop`.`pro_users`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_users`()
BEGIN
DECLARE week_count INT;
DECLARE user_count INT;
DECLARE over_count INT;
DECLARE month_count INT;
-- 每周注册用户
SELECT COUNT(*) INTO week_count FROM ecs_users WHERE reg_time>(UNIX_TIMESTAMP(NOW())-7*24*60*60);
-- 总注册用户
SELECT COUNT(*) INTO user_count FROM ecs_users;
-- 每周的活跃用户
SELECT COUNT(*) INTO over_count FROM ecs_users WHERE last_login>(UNIX_TIMESTAMP(NOW())-7*24*60*60);
-- 每月的访问量
SELECT COUNT(*) INTO month_count FROM ecs_stats WHERE access_time>UNIX_TIMESTAMP(DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(),'%y-%m-%d 00:00:00'),INTERVAL EXTRACT(DAY FROM NOW())-1 DAY),INTERVAL 0 MONTH));
INSERT INTO ecs_user_situation(week_count,user_count,over_count,month_count,week_time) VALUES (week_count,user_count,over_count,month_count,NOW());
END$$
DELIMITER ;
说明:个人本地存储过程名字:pro_users。第三步:建立触发器
[sql] view plaincopyprint?
DELIMITER $$
ALTER EVENT `eve_users` ON SCHEDULE EVERY 1 HOUR STARTS '2013-09-02 12:11:14' ON COMPLETION PRESERVE ENABLE DO BEGIN
CALL pro_users();
END$$
DELIMITER ;
说明:个人本地触发器名字:eve_users。
第四步:添加后台菜单
1.添加菜单URL
在目录admin/includes/inc_menu.php的-报表统计-的那部分代码下面添加: