存档

作者存档

mysql 查询当天、本周、上周、本月、上个月份的数据

2011年8月5日 admin 没有评论

查询当天的记录

select * from hb_article_view where TO_DAYS(hb_AddTime) = TO_DAYS(NOW())

查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now());

查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now())-1;

查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,’%Y-%m’)=date_format(now(),’%Y-%m’)

查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();

查询上个月的数据
select name,submittime from enterprise where date_format(submittime,’%Y-%m’)=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),’%Y-%m’)

select * from `user` where DATE_FORMAT(pudate,’%Y%m’) = DATE_FORMAT(CURDATE(),’%Y%m’) ;

select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = WEEKOFYEAR(now())

select *
from user
where MONTH(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = MONTH(now())

select *
from [user]
where YEAR(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = YEAR(now())
and MONTH(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = MONTH(now())

select *
from [user]
where pudate between 上月最后一天
and 下月第一天

分类: PHP 标签:

技术人员的产品观

2011年3月18日 admin 没有评论

 “这里用户体验不好,麻烦修改下。“P说。

“这里也不不好,麻烦修改下。”P说。

“还有这里…这里…这里…这里……”P说。

产品同事总有一堆堆的问题找我们修改。头都爆炸了。

这只是一个例子,实际中,还有很多。对于这一幕,我们不用纠结产品同事是否如何,我们站在技术人员的角度来看看这个问题。

在我们开发产品的过程中,我们是否考虑过产品是否易用呢?是否考虑过用户群是谁呢?是否考虑过产品目标是什么呢?是否考虑过产品的商业模式?是否考虑过产品的运营?是否考虑过产品的优化?是否考虑过产品数据的深度挖掘?…

站在肯定的立场,我们如何思考和实施呢?

首先我们来看看做产品前,都要考虑的几个问题。

1.产品定位
我们要做什么产品?核心竞争力是什么?

2.行业分析
该行业有没有比较成功的案例?是否有竞争对手?竞争对手的商业模式是怎样的?

3.用户分析
我们的用户群都有哪些?分别都有什么特性?

4.产品分析
产品有什么核心功能?分别可以满足用户的哪些核心需求?产品有哪些内容?产品的哪些内容最能吸引用户?

5.商业模式
产品如何盈利?如何长远发展?

在这五个方面之前,还要考虑用户需求调研,可行性分析等。

我们再来看下,产品开发过程中,主要都关注些什么?

1.交互设计
产品所要传达的信息,如何能更好的传递给用户?不同的用户群是否要需要不同的展现和交互方式?

2.用户体验
如何给用户以最好的feeling?

当然,在开发过程中,还会关注开发过程,测试等等。

最后我们来看下,开发完成后,都关注些什么呢?

1.产品推广
产品如何推广?广告?联盟?微博?SEO ……

2.产品运营
产品如何运营?如何拉来用户?如何留住用户……

3.数据挖掘
运营数据需要监控哪些?如何分析?根据分析结果如何优化产品……

在这些过程中,我们技术人员,需要关注和考虑什么呢?如果你全部关注,最好不过了。

为什么需要关注这些呢?
技术固然重要,但体现技术价值的,将技术转化为生产力的产品也同样重要。在关注技术的同时,关注产品,创造更好的产品,创造更高的价值。

Google wave 、google TV 从技术角度而言,很给力。但从产品角度而言,却Ungelivable,最终走向失败。

不要把我们的视野仅仅停留在coding,不要两耳不闻窗外事,一心只做coding活。

腾讯CEO马化腾,是个技术达人,但也非常关注产品。几乎每一款产品出来第一个体验的就是他。

百度CEO李彦宏,也是个技术牛人。其也非常之关注产品。百度的诸多产品也都经历其手。

关注这些有什么用呢?
也有很多技术人员在迷茫,难道要coding到七老八十?于是大家都在讨论发展方向和转型的问题。至于具体转型到哪个方向?是否要转型,暂不做讨论。但有一点是要提及的,就是可转型方向之一便是产品。

当你站在用户使用的角度去开发产品,那必定是较为好用的产品;当你站在老板的角度开发产品,那必定是较为成功的产品。

再说的实在一些,关注产品,对于技术人员的职业素质的提高,大有裨益。关注产品,来年的加薪可能就是你,来年的升职的可能就是你。

2011新年伊始,抬起头看看,做个不是非常艰难的决定,关注产品,培养你的产品观,拓展你的职业发展之路,成就你的职业旅程。

本文已经首发于InfoQ中文站,版权所有,原文为 技术人员的产品观——暨2011年展望 如需转载,请务必附带本声明,谢谢。

PHP 中文字符串截取方法汇总

2011年3月7日 admin 1 条评论

PHP 截取字符串代码

通过指定编码进行字符串截取:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * @todo 中文截取,支持gb2312,gbk,utf-8,big5
 *
 * @param string $str 要截取的字串
 * @param int $start 截取起始位置
 * @param int $length 截取长度
 * @param string $charset utf-8|gb2312|gbk|big5 编码
 * @param $suffix 是否加尾缀
 */
function CsubStrPro($str, $start = 0, $length, $charset = "utf-8", $suffix = true)
{
    if (function_exists ( "mb_substr" ))
        return mb_substr ( $str, $start, $length, $charset );
 
    $re ['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $re ['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
    $re ['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $re ['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
    preg_match_all ( $re [$charset], $str, $match );
    $slice = join ( "", array_slice ( $match [0], $start, $length ) );
    if ($suffix)
        return $slice . "…";
 
    return $slice;
}

2:自动识别 GBK 和UTF-8 编码的字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function cutStr($sourcestr, $cutstart=0, $cutlength) {
    $returnstr = '';
    $i = 0;
    $n = 0;
    $str_length = strlen ( $sourcestr ); //字符串的字节数
    while ( ($n < $cutlength) and ($i <= $str_length) ) {
        $temp_str = substr ( $sourcestr, $i, 1 );
        $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码
        if ($ascnum >= 224) //如果ASCII位高与224,
        {
            $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符
            $i = $i + 3; //实际Byte计为3
            $n ++; //字串长度计1
        }
        elseif ($ascnum >= 192) //如果ASCII位高与192,
        {
            $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符
            $i = $i + 2; //实际Byte计为2
            $n ++; //字串长度计1
        }
        elseif ($ascnum >= 65 && $ascnum <= 90) //如果是大写字母,
        {
            $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
            $i = $i + 1; //实际的Byte数仍计1个
            $n ++; //但考虑整体美观,大写字母计成一个高位字符
        }
        else //其他情况下,包括小写字母和半角标点符号,
        {
            $returnstr = $returnstr . substr ( $sourcestr, $i, 1 );
            $i = $i + 1; //实际的Byte数计1个
            $n = $n + 0.5; //小写字母和半角标点等与半个高位字符宽...
        }
    }
    if ($str_length > $i) {
        $returnstr = $returnstr . "..."; //超过长度时在尾处加上省略号
    }
    return $returnstr;
}
分类: PHP 标签: ,

PHP将汉字转化成拼音的函数(用于取首字母索引或按字母排序中文)

2011年2月23日 admin 没有评论

PHP将汉字转化成拼音的函数(用于取首字母索引或按字母排序中文)
阅读全文…

分类: PHP 标签: , , ,

ThinkPHP海量数据分表机制详细代码及说明

2011年2月23日 admin 没有评论

应用ThinkPHP内置的分表算法处理百万级用户数据.

数据表:
house_member_0
house_member_1
house_member_2
house_member_3

模型:

1
2
3
4
5
6
7
8
9
10
class MemberModel extends AdvModel {
 
    protected $partition = array('field'=>'username','type'=>'id','num'=>'4');
 
    public function getDao($data=array()) {
        $data = empty($data) ? $_POST : $data;
        $table = $this->getPartitionTableName($data);
        return $this->table($table);
    }
}

阅读全文…

分类: PHP 标签: , ,

PHP获取当前页面url

2011年2月23日 admin 没有评论
1
2
3
4
5
6
7
8
9
function get_url() { 
	if (!isset($_SERVER['REQUEST_URI'])) {  
		$url = $_SERVER['REQUEST_URI'];      
		}else{ 
			$url = $_SERVER['SCRIPT_NAME'];     
			$url .= (!empty($_SERVER['QUERY_STRING'])) ? '?' . $_SERVER['QUERY_STRING'] : '';           
			}    
			return $url;
	}

此函数返回正在执行的文件名信息。
当前 url:”http://”.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

获取URL相关的服务器环境变量:
1,$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串

2,$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI

3,$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径

4,$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名

实例:
1,http://www.wenan8.com/ (直接打开主页)
结果:
$_SERVER["QUERY_STRING"] = “”
$_SERVER["REQUEST_URI"] = “/”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”

2,http://www.wenan8.com/?s=55 (附带查询)
结果:
$_SERVER["QUERY_STRING"] = “s=55″
$_SERVER["REQUEST_URI"] = “/?s=55″
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”

3,http://www.wenan8.com/index.php?s=55&l=wenan
结果:
$_SERVER["QUERY_STRING"] = “s=55&l=wenan”
$_SERVER["REQUEST_URI"] = “/index.php?s=55&l=wenan”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”

$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"] 获取http://www.wenan8.com后面的值,包括/
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名

分类: PHP 标签: ,

蛋疼的腾讯礼仪

2011年1月19日 admin 没有评论

刚才在微博发了条言:
AD : 出售可靠#黄牛党# 电话。

在登录一看。打不开腾讯微博了。

呵,腾讯也出来”礼仪” 啦? 你凭神马 断定的我 不符合你腾讯的礼仪啦!
疼训呀,真让人蛋疼!

分类: 随便写写 标签: ,

PHP中使用JSON

2011年1月19日 admin 没有评论

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

一、json_encode()

该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:

      $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
 
      echo json_encode($arr);

结果为

      {"a":1,"b":2,"c":3,"d":4,"e":5}

再看一个对象转换的例子:

      $obj->body = 'another post';
 
      $obj->id = 21;
 
      $obj->approved = true;
 
      $obj->favorite_count = 1;
 
      $obj->status = NULL;
 
      echo json_encode($obj);

结果为

      {
        "body":"another post",
 
        "id":21,
 
        "approved":true,
 
        "favorite_count":1,
 
        "status":null
      }

阅读全文…

分类: PHP 标签: , , ,

DIRECTORY_SEPARATOR 与PATH_SEPARATOR

2011年1月18日 admin 没有评论

1.DIRECTORY_SEPARATOR

DIRECTORY_SEPARATOR:路径分隔符,linux上就是’/’ . windows上是’\’;

2.PATH_SEPARATOR

PATH_SEPARATOR是一个常量,include多个路径使用,在win下,要include多个路径的话,用”;”(分号)隔开,但在 linux下使用”:”(冒号)隔开的。在Linux系统中是一个” : “号,Windows上是一个”;”号。编写程序时最好用常量 PATH_SEPARATOR 代替,否则如果系统从linux移植到win系统或反过来移植会出错

分类: PHP 标签: , ,

Win7旗舰版下安装QQ失败

2011年1月17日 admin 没有评论

周末换了一下WIN7,好多软件都重装了。 装完QQ后 发现打开失败.

查了一下,原来是需要装VC库的组件
下载地址 http://download.microsoft.com/download/6/B/B/6BB661D6-A8AE-4819-B79F-236472F6070C/vcredist_x86.exe
可是安装过程中又出现错误

没关系,重启一下就好了。

分类: 随便写写 标签: , ,