偶然听到个小故事:

有一天,孔子的一个学生在门外扫地,来了一个客人问他:“你是谁呀?” 他很自豪的说:“我是孔子的学生!” 客人就说:“那太好,我能不能请教你一个问题?” 学生很高兴的说:“可以啊!”,他心想:“你大概要出什么奇怪的问题吧?”

客人问:“一年到底有几季呀?” 学生心想,这种问题还要问吗?于是便答道:“春、夏、秋、冬四季。” 客人摇头说:“不对,一年只有三季。” “哎,你搞错了,四季!” “三季!” 最后,两人争执不下,就决定打赌:如果是四季,客人就向学生磕三个头。如果是三季,学生向客人磕三个头。 孔子的学生心想自己这次赢定了,于是准备带客人去见老师孔子。

正巧,这时孔子从屋里走出来,学生上前问道:“老师,一年有几季啊?” 孔子看了一眼客人,说:“一年有三季。” 这个学生快吓晕了,可是他不敢马上问。 客人马上说:“磕头磕头!” 学生没办法,只好乖乖地磕了三个头。

客人走了以后,学生迫不及待地问孔子:“老师,一年明明有四季,你怎么说有三季呢?” 孔子说:“你没看到刚才那个人全身都是绿色吗?他是蚂蚱,蚂蚱是春天生,秋天就死了,他从来没有见过冬天,你讲三季,他会满意,你讲四季讲到晚上都讲不通。你吃亏,磕三个头,无所谓。

很多朋友听了以后,都变得很开心,都会说:以前碰到那些不讲理的人,都会生气,现在不会了,心想那是“三季人”,就不往心里去了。

故事告诉我们:“不争就是慈悲,不辨就是智慧,不闻就是清净,不看就是自在,原谅就是解脱,知足就是放下。” 后来,读到《庄子》,才明白“夏虫不可语以冰”。你跟夏天的虫子讲什么是冰?那就是你糊涂了。

MAC安装完MySQL后在终端无法和Linux一样简单的用 "msyql" 登入管理,可以通过以下设置简化。

MySQL安装的位置在 /usr/local/mysql

设置一个别名即可:

$alias mysql='/usr/local/mysql/bin/mysql'

现在就可以和Linux一样通过命令管理,如:

$mysql -u root -p

把/usr/local/apache/conf下的所有conf的文件内容里含有【/usr/local/apache/htdocs】,改为【/data/wwwroot】。具体操作如下:

#sed -i “s/\/usr\/local\/apache\/htdocs/\/data\/wwwroot/g” `find . -name “*.conf” | xargs grep “/usr/local/apache/htdocs” -rl`

#或

#find . -type f -exec sed -i ‘s#/usr/local/apache/htdocs#/data/wwwroot#g’ {} \;

转载自
http://www.centoscn.com/CentosServer/www/2013/0728/705.html

今日凌晨心情不大好,喝了不少酒。睡前把手机关机了,怕第二天电话吵到睡觉。已是凌晨四点多,昏昏沉沉,躺下就睡着了。早上醒来,以为是下午了,没想到还在11点多,可能忙碌习惯了,再困到点了还是会醒来。

电脑打开处理了些事情,匆匆吃了些饭,就背着电脑带着手机出门了。手机依然没开机,想拥有属于自己的一天。好久好久没坐过公交车了,于是今天去到公交站台旁边的超市买了包烟,就在那等公交车。太阳好大,本来是很怕热,没想到也能忍耐这么久,想想小时候不都是天天这时候这天气树林里河边等各个地方蹦跶。站了不久,满背是汗。

公交车慢慢的开着,终于有空可以欣赏这沿路的风景了,平时都太匆匆。我去了新华书店,想看看书,放松放松。 :)

- 阅读剩余部分 -

现在早上6点,一晚上没睡,可能是昨天傍晚6点多睡到8点的缘故。最近都是这样,夜夜失眠,如果不靠酒精根本无法入眠。本以为今天会好些,因为最近一直忙绿,终于眼看要完了,确一下子又觉得空虚了。昨夜也没有酒,也没有烟,也不想出去买,知道不是什么好东西,尝试着不去碰,1点多开始躺下,听了一晚上的电台,还是睡不着。

不知道在想些什么,也不知道自己一天在做些什么,浑浑噩噩。以前因为家里比较穷,梦想着赚些钱做想做的事情,买想买的东西,可以不向家里拿钱给家里省些心,每天忙忙碌碌过的很节俭,有辛酸但也挺快乐。现在虽然不是什么大富大贵,但以前想要的,都可以得到了,我却似乎又没有了热情。偶尔想去旅游,放松下心情,但想想还要赚钱还有好多事情,就算了吧。二十来岁,想好好努力些年,二七八买个房子,但仔细想想,好像有了房子,我也还是或还是如此吧,空洞、不安、浮躁。

- 阅读剩余部分 -

今天很早的醒来,躺着听电台。听着听着,突然的想到博客,想打理打理,垃圾评论清理了很久,虽然Akismet屏蔽了绝大多数,但是还是有些垃圾评论进来了。不知道我这小博客,有什么吸引力的。:)但这是个愉快的早上。

这wp主题用了很久,我想着换个。找了十来分钟,没有看到符合我心意的,wp主题站上的博客主题现在好多都是杂志类布局类型的了,太过复杂、商业化感觉。不是很喜欢吧,觉得个人博客就是应该简单、干净这样子,所以复杂强大的主题和功能很多是没有必要的。可能自媒体越来越多用wp,而写博客的人,越来越少,需求少了供应也就少了吧。我还是继续用我现在的吧,我觉得也是很漂亮的。

- 阅读剩余部分 -

最终目的实现以http://www.fl900.com/product/lists/1-0-0-1.html这样的URL形式且支持分页。

路由配置:

'/^product\/lists\/(\d+)-(\d+)-(\d+)-(\d+)$/'  => 'Product/lists?id=:1&aid=:2&sid=:3&p=:4',

修正Library\Think\Page.class.php分类以支持路由

//在23行,修改访问修饰符private为public
public $url='';
//在70行,防止经过传参后会出现问题urlencode('[PAGE]')转为小写,修改为
$this->url = str_replace(strtolower(urlencode('[PAGE]')), $page, $this->url);//开启URL不区分大小写时处理
return str_replace(urlencode('[PAGE]'), $page, $this->url);
//在80行,修正为以下实现自定义URL
/* 生成URL */
        if(empty($this->url)){
            $this->parameter[$this->p] = '[PAGE]';
            $this->url = U(ACTION_NAME, $this->parameter);
        }
//使用示例
$Page       = new \Think\Page($count,15);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$page_tpl = urlencode('[PAGE]'); 
$Page->url   =   U("Product/list/{$this->id}-{$this->aid}-{$this->sid}-{$page_tpl}");
$show       = $Page->show();

转载:http://www.thinkphp.cn/topic/22114.html

对于用过smarty做过php开发的朋友来说,应该都知道在smarty模板里面判断foreach循环是否是最后一个可以$smarty.foreach.name.last来判断循环是否到了最后一条记录,在thinkphp的模板中常见的循环是volist,但是volist的各种属性中并没有直接判断最后一条记录的属性,那么在thinkphp中如何判断呢?下面的代码可以实现ThinkPHP中volist断最后一条记录。

举例代码如下:

<volist name='lists' id='list'>
<li <if condition="$i eq count($lists)">class="last"</if>>
<a href="http://www.cnweed.com/">野草博客</a>
</li>
</volist>

转载:http://www.jb51.net/article/51718.htm

GROUP BY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。

某个员工信息表结构和数据如下:

id  name  dept  salary  edlevel  hiredate
1 张三 开发部 2000 3 2009-10-11
2 李四 开发部 2500 3 2009-10-01
3 王五 设计部 2600 5 2010-10-02
4 王六 设计部 2300 4 2010-10-03
5 马七 设计部 2100 4 2010-10-06
6 赵八 销售部 3000 5 2010-10-05
7 钱九 销售部 3100 7 2010-10-07
8 孙十 销售部 3500 7 2010-10-06

例如,我想列出每个部门最高薪水的结果,sql语句如下:

SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT

查询结果如下:

DEPT  MAXIMUM
开发部 2500
设计部 2600
销售部 3500

解释一下这个结果:
1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有GROUP BY DEPT中包含的列DEPT。
2、“列函数对于GROUP BY子句定义的每个组各返回一个结果”,根据部门分组,对每个部门返回一个结果,就是每个部门的最高薪水。
注意:计算的是每个部门(由 GROUP BY 子句定义的组)而不是整个公司的 MAX(SALARY)。
例如,查询每个部门的总的薪水数:

SELECT DEPT, SUM( SALARY ) AS total
FROM STAFF
GROUP BY DEPT

查询结果如下:

DEPT  total
开发部 4500
设计部 7000
销售部 9600

将 WHERE 子句与 GROUP BY 子句一起使用
分组查询可以在形成组和计算列函数之前具有消除非限定行的标准 WHERE 子句。必须在GROUP BY 子句之前指定 WHERE 子句。
例如,查询公司2010年入职的各个部门每个级别里的最高薪水

SELECT DEPT, EDLEVEL, MAX( SALARY ) AS MAXIMUM
FROM staff
WHERE HIREDATE > ’2010-01-01′
GROUP BY DEPT, EDLEVEL
ORDER BY DEPT, EDLEVEL

查询结果如下:

DEPT  EDLEVEL  MAXIMUM
设计部 4 2300
设计部 5 2600
销售部 5 3000
销售部 7 3500

注意:在SELECT语句中指定的每个列名也在GROUP BY子句中提到。未在这两个地方提到的列名将产生错误。

GROUP BY子句对DEPT和EDLEVEL的每个唯一组合各返回一行
在GROUP BY子句之后使用HAVING子句可应用限定条件进行分组,以便系统仅对满足条件的组返回结果。为此,在GROUP BY子句后面包含一个HAVING子句。HAVING子句可包含一个或多个用AND和OR连接的谓词。每个谓词将组特性(如AVG(SALARY))与下列之一进行比较:
例如:寻找雇员数超过2个的部门的最高和最低薪水:

SELECT DEPT, MAX( SALARY ) AS MAXIMUM, MIN( SALARY ) AS MINIMUM
FROM staff
GROUP BY DEPT
HAVING COUNT( * ) >2
ORDER BY DEPT

查询结果如下:

DEPT  MAXIMUM  MINIMUM
设计部 2600 2100
销售部 3500 3000

例如:寻找雇员平均工资大于3000的部门的最高和最低薪水:

SELECT DEPT, MAX( SALARY ) AS MAXIMUM, MIN( SALARY ) AS MINIMUM
FROM staff
GROUP BY DEPT
HAVING AVG( SALARY ) >3000
ORDER BY DEPT

查询结果如下:

DEPT MAXIMUM MINIMUM
销售部 3500 3000

转载:https://blog.phpha.com/backup/archives/353.html

thinkphp volist循环嵌套if标签判断
今天用volist循环嵌套if标签判断的时候,if判断不能成功,报错,如下示例:

<volist name="list" id="vo">
<volist name="slist" id="s">
<if condition="$s.sid eq $vo.id">
内容。。。。。
</if>
</volist>
</volist>

如果if语句像上面那样写,数据永远也取不出来,因为condition里面写的是PHP原生代码,所以如果是数组要换成中括号的写法,将IF语里的condition表达式换成:$s[‘id’] eq $vo.sid 或者:$s[‘id’] eq $vo[‘sid’],当前的volist的值可不用换成PHP原生数组的形式,上一级的换就OK,也可两个都换成原生数组的形式进行比较。以下是正确代码:

<volist name="list" id="vo">
<volist name="slist" id="s">
<if condition="$s.sid eq $vo['id']">   //或者<if condition="$s['sid'] eq $vo['id']">
内容。。。。。
</if>
</volist>
</volist>

转载:http://www.web-fish.com/program/535.html