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


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中的观察者模式
Mar 24 PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 PHP
php递归json类实例
Dec 02 PHP
php常见的魔术方法详解
Dec 25 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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 CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
javascript数据类型详解
2017/02/07 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
JS实现小星星特效
2019/12/24 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
如何利用python生成MD5并去重
2020/12/07 Python
软件配置管理有什么好处
2015/04/15 面试题
文明家庭先进事迹材
2014/01/27 职场文书
小学教师评语大全
2014/04/23 职场文书
学习张林森心得体会
2014/09/10 职场文书
工作经验交流材料
2014/12/30 职场文书
顶岗实习计划书
2015/01/16 职场文书
欠条格式范本
2015/07/03 职场文书