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


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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
Php部分常见问题总结
Oct 09 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
laravel自定义分页效果
Jul 23 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
php实现可逆加密的方法
2015/08/11 PHP
js验证表单大全
2006/11/25 Javascript
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
Python subprocess模块详细解读
2018/01/29 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
为什么python比较流行
2020/06/19 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
Java编程面试题
2016/04/04 面试题
九月份红领巾广播稿
2014/01/22 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
导游词之凤凰古城
2019/10/22 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS