简单易用的计数器(数据库)


Posted in PHP onOctober 09, 2006

用法
<?
include("counter.php");
Counter(__FILE__);//为文件增加一个计数
if($PHP_SELF=="/index.php")
{
$count=Counter("INDEX_COUNT");//为首页增加一个计数
}
else
{
$count=Counter("INDEX_COUNT","",0);//取得首页计数
}
echo "你是第$count个访问者";
?>
--------counter.php-----------
<?
if(!isset($PHP_INCLUDE_COUNTER_PHP))
{$PHP_INCLUDE_COUNTER_PHP=__FILE;

$counter_error_state=0;
$counter_error_msg="";
function Counter($file,$query="",$add=1)
{
        $db_name="database";
        $db_user="username";
        $db_pass="password";
        $db_table="counter";

        if(empty($file))
        {
                $counter_error_state=-100;
                $counter_error_msg="缺少第一个参数或参数为空";
                return -100;
        }
        global $PHP_SELF,$QUERY_STRING,$counter_error_state,$counter_error_msg;
        if(empty($db_user)||!$db_user||$db_user=="")$res=@mysql_connect("localhost");
        else $res=@mysql_connect("localhost",$db_user,$db_pass);
        if(!$res)
        {
                $counter_error_states=-10;
                $counter_error_msg="不能连接数据库";
                return -10;
        }
        if(!@mysql_select_db($db_name))
        {
                $counter_error_states=-11;
                $counter_error_msg="不能选择数据库";
                return -11;
        }
        else
        {
                if(!$db_res=@mysql_query("SELECT * FROM ".$db_table))
                {
                        if(!$db_res=@mysql_query("CREATE TABLE ".$db_table." (id INTEGER AUTO_INCREMENT,PRIMARY KEY (id),file VARCHAR(255),query VARCHAR(255),time VARCHAR(255),count INT)"))
                        {
                                $counter_error_states=-20;
                                $counter_error_msg="不能创建数据表";
                                return -20;
                        }
                        @mysql_free_result($db_res);
                }
                $str="SELECT * FROM ".$db_table." WHERE file=\"".$file."\" AND query=\"".$query."\"";

                if(!$db_res=@mysql_query($str))
                {
                        $counter_error_states=-30;
                        $counter_error_msg="不能查询记录";
                        return -30;
                }
                $num=@mysql_num_rows($db_res);
                if($num>1)
                {
                        $counter_error_states=-40;
                        $counter_error_msg="发生没有预期的错误=数据行数错误";
                        return -40;
                }
                $count=0;
                $str="INSERT ";
                $strWhere="";
                if($num==1)
                {
                        $row=@mysql_fetch_array($db_res);
                        @mysql_free_result($db_res);
                        $count=$row["count"];
                        $id=$row["id"];
                        $str="UPDATE ";
                        $strWhere=" WHERE id=$id";
                }
                if($add<1)return $count;
                $count+=$add;
                $str.=$db_table." SET file=\"".$file."\",query=\"".$query."\",time=\"".date("Y;n;d;G;i;s")."\",count=".$count.$strWhere;
                $db_res=@mysql_query($str);
                if(!$db_res)
                {
                        $counter_error_states=-50;
                        $counter_error_msg="不能添加或更新记录";
                        return -50;
                }
                return $count;
        }
}

}
?> 

PHP 相关文章推荐
最简单的PHP程序--记数器
Oct 09 PHP
php获取文件大小的方法
Feb 26 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
PHP中余数、取余的妙用
Jun 29 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
AJAX的使用方法详解
Apr 29 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
解决Laravel5.5下的toArray问题
Oct 15 PHP
用Php实现链结人气统计
Oct 09 #PHP
也谈 PHP 和 MYSQL
Oct 09 #PHP
在WIN98下以apache模块方式安装php
Oct 09 #PHP
Php+SqlServer实现分页显示
Oct 09 #PHP
写一个用户在线显示的程序
Oct 09 #PHP
PHP4引用文件语句的对比
Oct 09 #PHP
一个php作的文本留言本的例子(六)
Oct 09 #PHP
You might like
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
python常见数制转换实例分析
2015/05/09 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python解析最简单的验证码
2016/01/07 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
python中web框架的自定义创建
2019/09/08 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
材料化学应届生求职信
2013/10/09 职场文书
初中数学教学反思
2014/01/16 职场文书
四年级数学教学反思
2014/02/02 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
水浒传读书笔记
2015/06/25 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python