飘灵儿 发表于 2015-2-4 00:20:46

PHP教程之在耳目数统计源代码

不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。统计|源代码|在线|在耳目数   依据我的上篇文章《也谈网站在耳目数统计》,我写的在耳目数统计法式源代码以下:若有毛病请斧正。

db层:
db_online.php

//该函数利用户本人在线,而且反省其他用户的在线情形
function checkOnline($userid,$tempid=null)
{
$conn = connect();

//关于一切用户
//先设置本人为在线
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='Y' WHERE UserID=".$userid;
$result = query($stmt,$conn);
//info($stmt);
//假如以后用户是旅客
if ($tempid != null)
{
$stmt = "SELECT TempID FROM ".DB_NAME.".TEMPUSER WHERE

TempID=".$tempid;
$result = query($stmt,$conn);
//info($stmt);
//假如该旅客还在线
if ($row = fetch_array($result))
{
$stmt = "UPDATE ".DB_NAME.".TEMPUSER SET

RequestTime='".getCurrentTime()."' WHERE TempID=".$tempid;
$result = query($stmt,$conn);
//info($stmt);
}
//该旅客已离线
else
{
$stmt = "INSERT INTO ".DB_NAME.".TEMPUSER

VALUES('".$tempid."','".getCurrentTime()."')";
$result = query($stmt,$conn);
//info($stmt);
}
}

//检查其他用户
//通俗用户
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='N' WHERE ".time()." -

unix_timestamp(RequestTime) > ".ONLINE_DURATION." AND UserGroupID != ".GUEST;
$result = query($stmt,$conn);

//旅客
$stmt = "DELETE FROM ".DB_NAME.".TEMPUSER WHERE ".time()." -

unix_timestamp(RequestTime) > ".ONLINE_DURATION;
$result = query($stmt,$conn);
disconnect($conn);
}

//失掉在耳目数,分用户和旅客
function getOnlineNumber()
{
$olnum = array();
$conn = connect();
$stmt = "SELECT COUNT(UserID) FROM ".DB_NAME.".USER WHERE IsOnline='Y' AND

UserGroupID != 4"; //4 为guest的用户组id
//info ($stmt);
$result = query($stmt,$conn);
$olnum['user'] = result($result,0,"COUNT(UserID)");
$stmt = "SELECT COUNT(TempID) FROM ".DB_NAME.".TEMPUSER";
//info ($stmt);
$result = query($stmt,$conn);
if ($row = fetch_array($result))
{
$olnum['guest'] = $row['COUNT(TempID)'];
}
disconnect($conn);
return $olnum;
}



个中的connect(), disconnect(), query(),fetch_array()函数在dbmanager.inc.php中
dbmanager.inc.php

define("DB_NAME","databasename");
define("DB_USER","user");
define("DB_PASS","pass");
define("DB_HOST","localhost");

function connect()
{
//echo "Connecting to Host:".HOST."<br>";
$conn = mysql_connect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
/*
if ($conn)
{
echo "Connect to database sucessfully. connection id:".$conn."<br>";
}
else
{
echo "Connect to database failed.<br>";
}
*/
return $conn;
}

function pconnect()
{
return mysql_pconnect(DB_HOST,DB_USER,DB_PASS);
}

function disconnect($conn)
{
$close = mysql_close($conn);
/*
if ($close)
echo "MySQL Database disconnected.<br>";
else
echo "MySQL Database disconnecting failed. Please try again.<br>";
*/
}

function query($stmt,$conn)
{
return mysql_query($stmt,$conn);
}

function fetch_array($result)
{
return mysql_fetch_array($result);
}

function fetch_row($result)
{
return mysql_fetch_row($result);
}

function num_rows($result)
{
return mysql_num_rows($result);
}

function result($result,$row,$field)
{
return mysql_result($result,$row,$field);
}


rule层:
rl_online.php
function getOnline()
{
if ($userid == 2)
{
if (session_is_registered("tempuserid"))
{
checkOnline($userid,$tempuserid);
}
}
else
{
checkOnline($userid);
}
return getOnlineNumber();
}

ui层:
ui_online.php
$online_num = getOnline();
echo "在耳目数,注册用户".$online_num['user']."人,旅客".$online_num['guest']."人";怎么配置呢 ,问最好的老实百度,问啥都有答案。所以用好搜索引擎是学好的令1个关键,程序会出各样的问题,没有1个人可能会碰到所有的问题,所有就可以问百度这个大家精华的集合了。

因胸联盟 发表于 2015-2-4 12:01:19

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

山那边是海 发表于 2015-2-9 22:31:07

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

再见西城 发表于 2015-2-22 06:55:19

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

飘灵儿 发表于 2015-3-6 23:21:14

当然这种网站的会员费就几十块钱。

柔情似水 发表于 2015-3-12 11:23:34

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

admin 发表于 2015-3-19 21:18:31

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

海妖 发表于 2015-3-24 09:34:13

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

金色的骷髅 发表于 2015-4-7 10:38:03

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

乐观 发表于 2015-4-17 10:59:00

做为1门年轻的语言,php一直很努力。

小女巫 发表于 2015-5-6 22:09:38

本文当是我的笔记啦,遇到的问题随时填充

透明 发表于 2015-5-8 01:04:51

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

精灵巫婆 发表于 2015-5-9 11:45:25

Ps:以上纯属原创,如有雷同,纯属巧合

只想知道 发表于 2015-5-11 23:10:40

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

灵魂腐蚀 发表于 2015-6-7 15:43:47

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

仓酷云 发表于 2015-6-13 21:28:35

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

老尸 发表于 2015-7-11 14:52:26

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

莫相离 发表于 2015-7-14 05:54:29

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

若相依 发表于 2015-7-23 01:31:17

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

不帅 发表于 2015-9-24 20:57:16

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
页: [1]
查看完整版本: PHP教程之在耳目数统计源代码