<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pardon? Louder pls!</title>
	<atom:link href="http://blog.exxred.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.exxred.com</link>
	<description></description>
	<lastBuildDate>Wed, 03 Feb 2010 06:07:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Android源代码的获取、编译与运行</title>
		<link>http://blog.exxred.com/android_source_code_synchornize_compile_and_run</link>
		<comments>http://blog.exxred.com/android_source_code_synchornize_compile_and_run#comments</comments>
		<pubDate>Wed, 03 Feb 2010 06:07:26 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/android_source_code_synchornize_compile_and_run</guid>
		<description><![CDATA[操作系统：Ubuntu 9.10
安装编译需要的环境：    $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
取得代码同步工具repo：    $ cd ~     $ mkdir bin     $ curl http://android.git.kernel.org/repo &#62; ~/bin/repo     $ chmod a+x ~/bin/repo #给予repo执行权限  [...]]]></description>
			<content:encoded><![CDATA[<p>操作系统：Ubuntu 9.10</p>
<p>安装编译需要的环境：    <br />$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev</p>
<p>取得代码同步工具repo：    <br />$ cd ~     <br />$ mkdir bin     <br />$ curl <a href="http://android.git.kernel.org/repo">http://android.git.kernel.org/repo</a> &gt; ~/bin/repo     <br />$ chmod a+x ~/bin/repo #给予repo执行权限     </p>
<p>新建本地代码目录并初始化：     <br />$ mkdir mydroid     <br />$ cd mydroid     <br />$ repo init –u git://android.git.kernel.org/platform/manifest.git     <br />见到 repo initialized in /mydroid 就说明好了，一般很快搞掂</p>
<p>代码同步到本地：    <br />$ repo sync #大概2G，我的ADSL下了很久，睡觉去吧，睡醒就好了</p>
<p>编译只要一个指令：    <br />$ cd ~/mydroid     <br />$ make #全凭android强大的编译工具     <br />最后在 ~/mydroid 目录里生成 out 目录，里面有模拟器和系统映像</p>
<p>用模拟器运行映像文件：    <br />设置映像所在目录：     <br />$ export ANDROID_PRODUCT_OUT = ~/mydroid/out/target/product/generic     <br />里面有system.img ramdisk.img 和 data.img     <br />运行模拟器：     <br />$ ~/mydroid/out/host/linux-x86/bin/emulator</p>
<p>OK~</p>
<p>单独模块编译用：mmm package-path    <br />然后用make snod重新打包system.img     <br />$ ~/mydroid/build/envsetup.sh #生出编译工具包     <br />$ mmm packages/apps/AlarmClock     <br />$ make snod     <br />$ ~/mydroid/out/host/linux-x86/bin/emulator     </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/android_source_code_synchornize_compile_and_run/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP GD2生成JPG缩略图</title>
		<link>http://blog.exxred.com/php_gd2_jpeg_thumbnail_generate</link>
		<comments>http://blog.exxred.com/php_gd2_jpeg_thumbnail_generate#comments</comments>
		<pubDate>Fri, 25 Dec 2009 02:47:22 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/php_gd2_jpeg_thumbnail_generate</guid>
		<description><![CDATA[核心流程在于：
1、$im = imagecreatefromjpeg(string jpeg_path) //jpeg图像resource
2、$ox = imagesx（resource $im），$oy = imagesy(resource $im) //获取当前图片width和height
3、等比例计算新图的width和height
$nx = 100;
$ny = $oy * (100 / $ox);
4、imagecreatetruecolor(int $nx,int $ny); //建立新图像resource
5、旧到新拷贝 imagecopyresized($nm,$im,0,0,0,0,$nx,$ny,$ox,$oy);
6、保存 imagejpeg($nm,string jpeg_thumbnail_path);
demo code:
//load picture files   $pic_path&#160;&#160; = &#34;pics/&#34;;    $thumb_path = &#34;thumbs/&#34;;     $static_page= &#34;gallery.html&#34;;    $dir = opendir($pic_path);    [...]]]></description>
			<content:encoded><![CDATA[<p>核心流程在于：</p>
<p>1、$im = imagecreatefromjpeg(string jpeg_path) //jpeg图像resource</p>
<p>2、$ox = imagesx（resource $im），$oy = imagesy(resource $im) //获取当前图片width和height</p>
<p>3、等比例计算新图的width和height</p>
<p>$nx = 100;</p>
<p>$ny = $oy * (100 / $ox);</p>
<p>4、imagecreatetruecolor(int $nx,int $ny); //建立新图像resource</p>
<p>5、旧到新拷贝 imagecopyresized($nm,$im,0,0,0,0,$nx,$ny,$ox,$oy);</p>
<p>6、保存 imagejpeg($nm,string jpeg_thumbnail_path);</p>
<p>demo code:</p>
<p>//load picture files   <br />$pic_path&#160;&#160; = &quot;pics/&quot;;    <br />$thumb_path = &quot;thumbs/&quot;;     <br />$static_page= &quot;gallery.html&quot;;    <br />$dir = opendir($pic_path);    <br />$pics = array();    <br />while($file = readdir($dir)){    <br />&#160;&#160;&#160; if(preg_match(&#8216;/.+\.jpg/i&#8217;,$file)){    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $pics[] = $file;    <br />&#160;&#160;&#160; }    <br />}    <br />closedir($dir); </p>
<p>//thumbnais generate   <br />foreach($pics as $file){    <br />&#160;&#160;&#160; $im = imagecreatefromjpeg($pic_path.$file);    <br />&#160;&#160;&#160; $ox = imagesx($im);    <br />&#160;&#160;&#160; $oy = imagesy($im); </p>
<p>&#160;&#160;&#160; $nx = 100;   <br />&#160;&#160;&#160; $ny = $oy * (100 / $ox);    <br />&#160;&#160;&#160; $nm = imagecreatetruecolor($nx,$ny);    <br />&#160;&#160;&#160; imagecopyresized($nm,$im,0,0,0,0,$nx,$ny,$ox,$oy);    <br />&#160;&#160;&#160; imagejpeg($nm,$thumb_path.$file);    <br />} </p>
<p>//static page generate   <br />ob_start()    <br />?&gt;    <br />&lt;html&gt;    <br />&lt;head&gt;    <br />&lt;title&gt;god girl&lt;/title&gt;    <br />&lt;/head&gt;    <br />&lt;body&gt;    <br />&lt;div id=&#8217;wapper&#8217;&gt;    <br />&lt;?php    <br />foreach($pics as $file){    <br />&#160;&#160;&#160; printf(&quot;\t&lt;div id=&#8217;image&#8217;&gt;&lt;a href=&#8217;%s&#8217;&gt;&lt;img border=&#8217;0&#8242; src=&#8217;%s&#8217; /&gt;&lt;/a&gt;&lt;/div&gt;&quot;,$pic_path.$file,$thumb_path.$file);    <br />}    <br />?&gt;    <br />&lt;/div&gt;    <br />&lt;a href=&quot;thumb.php&quot;&gt;generate thumbnails&lt;/a&gt;    <br />&lt;/body&gt;    <br />&lt;/html&gt;    <br />&lt;?php    <br />$html = ob_get_clean();    <br />$fh&#160;&#160; = fopen($static_page,&quot;w&quot;);    <br />fwrite($fh,$html);    <br />fclose($fh);    <br />header(&quot;location: gallery.html&quot;);    <br />?&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/php_gd2_jpeg_thumbnail_generate/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xdebug安装注意事项</title>
		<link>http://blog.exxred.com/xdebug_install_tips</link>
		<comments>http://blog.exxred.com/xdebug_install_tips#comments</comments>
		<pubDate>Thu, 24 Dec 2009 03:36:46 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/xdebug_install_tips</guid>
		<description><![CDATA[1、下载对应版本的xdebug（5.2.x or 5.3.x &#124; non thread safe or thread safe &#124; vc6 or vc9）
2、5.3.x以后的版本用zend_extension加载（貌似5.2.x也是用这个，之前装过）
3、php_xdebug.dll必须是完全路径（full-path，5.2.x好像可以接受非完全路径）
*上次是5.2.x装得很顺利，隐约记得写的zend_extension = php_xdebug.dll，换了5.3.x给完全路径糊弄了半天，还以为版本下错了~特发此文~
环境：wamp2（php 5.3.0）对应32位vc6版本的xdebug线程安全版5.3 VC6 (32 bit）
php.ini：zend_extension = &#34;d:/wamp/bin/php/php5.3.0/ext/php_xdebug.dll&#34;
]]></description>
			<content:encoded><![CDATA[<p>1、下载对应版本的xdebug（5.2.x or 5.3.x | non thread safe or thread safe | vc6 or vc9）</p>
<p>2、5.3.x以后的版本用zend_extension加载（貌似5.2.x也是用这个，之前装过）</p>
<p>3、php_xdebug.dll必须是完全路径（full-path，5.2.x好像可以接受非完全路径）</p>
<p><font color="#800040">*上次是5.2.x装得很顺利，隐约记得写的zend_extension = php_xdebug.dll，换了5.3.x给完全路径糊弄了半天，还以为版本下错了~特发此文~</font></p>
<p>环境：wamp2（php 5.3.0）对应32位vc6版本的xdebug线程安全版<a href="http://xdebug.org/files/php_xdebug-2.0.5-5.3-vc6.dll">5.3 VC6 (32 bit）</a></p>
<p>php.ini：zend_extension = &quot;d:/wamp/bin/php/php5.3.0/ext/php_xdebug.dll&quot;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/xdebug_install_tips/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>输入框绑定Enter/Ctrl+Enter键提交</title>
		<link>http://blog.exxred.com/input-box-bind-enter-or-ctrl-enter-key</link>
		<comments>http://blog.exxred.com/input-box-bind-enter-or-ctrl-enter-key#comments</comments>
		<pubDate>Wed, 02 Dec 2009 09:54:00 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/input-box-bind-enter-or-ctrl-enter-key</guid>
		<description><![CDATA[//enter
&#60;input type=&#34;text&#34; name=&#34;last_input_box&#34;    onkeydown=&#34;if(event.keyCode==13)this.form.submit();&#34; /&#62;
//ctrl + enter
 &#60;input type=&#34;text&#34; name=&#34;last_input_box&#34;   onkeydown=&#34;if(event.ctrlKey &#38;&#38; event.keyCode==13)this.form.submit();&#34; /&#62;  
]]></description>
			<content:encoded><![CDATA[<p>//enter</p>
<p>&lt;input type=&quot;text&quot; name=&quot;last_input_box&quot;    <br />onkeydown=&quot;if(event.keyCode==13)this.form.submit();&quot; /&gt;</p>
<p>//ctrl + enter</p>
<p> &lt;input type=&quot;text&quot; name=&quot;last_input_box&quot;   <br />onkeydown=&quot;if(event.ctrlKey &amp;&amp; event.keyCode==13)this.form.submit();&quot; /&gt;  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/input-box-bind-enter-or-ctrl-enter-key/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>入职一个月以来就没停地小改&#8230;</title>
		<link>http://blog.exxred.com/first-month-update-list-of-my-new-work</link>
		<comments>http://blog.exxred.com/first-month-update-list-of-my-new-work#comments</comments>
		<pubDate>Wed, 02 Dec 2009 06:01:00 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/first-month-update-list-of-my-new-work</guid>
		<description><![CDATA[//New skin of eqq dialog box: qq-style    //2009-11-2 
add skins/kefu/dialog/qq/*.*    modified kf.php     modified /kefu/client.inc.php 
====================================================================== 
//New template for eqq whole system    //2009-11-4 
add template\web\default\*.htm (48 files)    modified {root}\*.php (25 files) 
======================================================================    // Count Function Update  [...]]]></description>
			<content:encoded><![CDATA[<p>//New skin of eqq dialog box: qq-style    <br />//2009-11-2 </p>
<p>add skins/kefu/dialog/qq/*.*    <br />modified kf.php     <br />modified /kefu/client.inc.php </p>
<p>====================================================================== </p>
<p>//New template for eqq whole system    <br />//2009-11-4 </p>
<p>add template\web\default\*.htm (48 files)    <br />modified {root}\*.php (25 files) </p>
<p>======================================================================    <br />// Count Function Update     <br />// 2009-11-7 </p>
<p>//table modify    <br />insert into kefu_function(keyname,title,isused,price,days,content) values(&#8216;count&#8217;,'Count&#8217;,1,10,30,&#8217;count for guest&#8217;); </p>
<p>// file: member/check.php    <br />function MyGrade($g){     <br />&#160; //modified by sam for Count Grade function     <br />&#160; if($g==&#8217;count&#8217;&amp;&amp;!CheckGrade($g)) return false;     <br />&#160; global $grade,$cid,$username;     <br />&#160; if($cid==$username)return true;     <br />&#160; return @in_array($g,explode(&#8216;,&#8217;,$grade)) ? true : false;     <br />} </p>
<p>======================================================================    <br />// JQuery mix code.inc.php script $ symbol     <br />// 2009-11-7 </p>
<p>// file: images/img2.js    <br />jQuery(document).ready(function() {     <br />&#160;&#160;&#160; _$ = jQuery.noConflict();     <br />&#160;&#160;&#160; _$(&#8216;.mycarousels&#8217;).css(&#8216;marginLeft&#8217;, &#8216;0px&#8217;);     <br />&#160;&#160;&#160; //4 item carousel     <br />&#160;&#160;&#160; jQuery(&quot;.mycarousels&quot;).jcarousel({     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; itemVisible: 3,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; itemScroll: 1,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; scrollAnimation:&quot;1000&quot;     <br />&#160;&#160;&#160; });     <br />}); </p>
<p>======================================================================    <br />// New Style Add     <br />// 2009-11-7 </p>
<p>// file: /template/web/default/*.htm    <br />//&#160;&#160;&#160;&#160; /media/banner1.swf     <br />//&#160;&#160;&#160;&#160; /images/*.*     <br />//&#160;&#160;&#160;&#160; /css/css.css /css/css1.css     <br />//&#160;&#160;&#160;&#160; /*.php </p>
<p>====================================================================== </p>
<p>//agent apply function    <br />//     <br />//database table add kefu_agentapply </p>
<p>CREATE TABLE IF NOT EXISTS `kefu_agentapply` (    <br />&#160; `id` int(11) NOT NULL auto_increment,     <br />&#160; `company` char(50) default NULL,     <br />&#160; `name` char(50) default NULL,     <br />&#160; `phone` char(50) default NULL,     <br />&#160; `atype` char(50) default NULL,     <br />&#160; `url` char(50) default NULL,     <br />&#160; `address` char(100) default NULL,     <br />&#160; `fax` char(50) default NULL,     <br />&#160; `zip` char(50) default NULL,     <br />&#160; `qq` char(50) default NULL,     <br />&#160; `applytime` datetime default NULL,     <br />&#160; PRIMARY KEY&#160; (`id`)     <br />) ENGINE=MyISAM&#160; DEFAULT CHARSET=gbk; </p>
<p>//add template    <br />template/web/defualt/agent_apply.htm&#160; template for agent.php?act=apply     <br />//add php action handler     <br />agent/apply.php     <br />//add action to admin     <br />switch($action){     <br />&#160; case&#8217;menu&#8217;:     <br />&#160; &#8230;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; array(&#8216;代理商管理&#8217;,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; array(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;agent_prov&#8217;=&gt;&#8217;代理范围设定&#8217;,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;agent_apply&#8217;=&gt;&#8217;代理商申请&#8217;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; )     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ),     <br />&#160; &#8230;     <br />//add case judge to admin/admin.php     <br />&#160; case&#8217;agent_apply&#8217;:     <br />&#160;&#160;&#160; $title=&#8217;代理商申请&#8217;;     <br />&#160;&#160;&#160; $agent=$db-&gt;record(&quot;agentapply&quot;,&quot;company,name,phone,atype,url,address,fax,zip,qq,applytime&quot;);     <br />&#160;&#160;&#160; include(&quot;agent_apply.php&quot;);     <br />&#160;&#160;&#160; break; </p>
<p>//add admin template for agent_apply action    <br />admin/agent_apply.php </p>
<p>====================================================================== </p>
<p>//article category function add    <br />//2009-11-13 </p>
<p>//alert table kefu_article    <br />ALTER TABLE `kefu_article` ADD `category` CHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL AFTER `ntype` </p>
<p>//add table kefu_category    <br />CREATE TABLE IF NOT EXISTS `kefu_category` (     <br />&#160; `id` int(11) NOT NULL auto_increment,     <br />&#160; `title` char(30) default NULL,     <br />&#160; `desc` char(100) default NULL,     <br />&#160; `image` char(255) default NULL,     <br />&#160; PRIMARY KEY&#160; (`id`)     <br />) ENGINE=MyISAM&#160; DEFAULT CHARSET=gbk;     <br />************************************************un-completed********* </p>
<p>===================================================================== </p>
<p>//set default style &#8216;qq&#8217;    <br />//member/member.php     <br />//2009-11-20     <br />case &#8217;style&#8217;:     <br />if($db-&gt;rows(&quot;style&quot;,&quot;companyid=&#8217;$cid&#8217;&quot;)==0)     <br />$db-&gt;insert(&quot;style&quot;,&quot;companyid,posx,x,posy,y,iconstyle,liststyle,tipstyle,dialogstyle&quot;,&quot;$cid|right|0|top|0|001|QQ2006|001|qq&quot;); </p>
<p>//kf.php    <br />if($db-&gt;rows(&quot;style&quot;,&quot;companyid=&#8217;$cid&#8217;&quot;)==0)     <br />$db-&gt;insert(&quot;style&quot;,&quot;companyid,posx,x,posy,y,iconstyle,liststyle,tipstyle,dialogstyle&quot;,&quot;$cid|right|0|top|0|001|QQ2006|001|qq&quot;); </p>
<p>====================================================================== </p>
<p>//company logo upload function    <br />//2009-11-20     <br />//add action to member/save.php for upload backend     <br />// Count Function Update     <br />// 2009-11-7 </p>
<p>//table modify    <br />insert into kefu_function(keyname,title,isused,price,days,content) values(&#8216;count&#8217;,'Count&#8217;,1,10,30,&#8217;count for guest&#8217;); </p>
<p>// file: member/check.php    <br />function MyGrade($g){     <br />&#160; //modified by sam for Count Grade function     <br />&#160; if($g==&#8217;count&#8217;&amp;&amp;!CheckGrade($g)) return false;     <br />&#160; global $grade,$cid,$username;     <br />&#160; if($cid==$username)return true;     <br />&#160; return @in_array($g,explode(&#8216;,&#8217;,$grade)) ? true : false;     <br />} </p>
<p>======================================================================    <br />// JQuery mix code.inc.php script $ symbol     <br />// 2009-11-7 </p>
<p>// file: images/img2.js    <br />jQuery(document).ready(function() {     <br />&#160;&#160;&#160; _$ = jQuery.noConflict();     <br />&#160;&#160;&#160; _$(&#8216;.mycarousels&#8217;).css(&#8216;marginLeft&#8217;, &#8216;0px&#8217;);     <br />&#160;&#160;&#160; //4 item carousel     <br />&#160;&#160;&#160; jQuery(&quot;.mycarousels&quot;).jcarousel({     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; itemVisible: 3,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; itemScroll: 1,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; scrollAnimation:&quot;1000&quot;     <br />&#160;&#160;&#160; });     <br />}); </p>
<p>======================================================================    <br />// New Style Add     <br />// 2009-11-7 </p>
<p>// file: /template/web/default/*.htm    <br />//&#160;&#160;&#160;&#160; /media/banner1.swf     <br />//&#160;&#160;&#160;&#160; /images/*.*     <br />//&#160;&#160;&#160;&#160; /css/css.css /css/css1.css     <br />//&#160;&#160;&#160;&#160; /*.php </p>
<p>====================================================================== </p>
<p>//agent apply function    <br />//     <br />//database table add kefu_agentapply </p>
<p>CREATE TABLE IF NOT EXISTS `kefu_agentapply` (    <br />&#160; `id` int(11) NOT NULL auto_increment,     <br />&#160; `company` char(50) default NULL,     <br />&#160; `name` char(50) default NULL,     <br />&#160; `phone` char(50) default NULL,     <br />&#160; `atype` char(50) default NULL,     <br />&#160; `url` char(50) default NULL,     <br />&#160; `address` char(100) default NULL,     <br />&#160; `fax` char(50) default NULL,     <br />&#160; `zip` char(50) default NULL,     <br />&#160; `qq` char(50) default NULL,     <br />&#160; `applytime` datetime default NULL,     <br />&#160; PRIMARY KEY&#160; (`id`)     <br />) ENGINE=MyISAM&#160; DEFAULT CHARSET=gbk; </p>
<p>//add template    <br />template/web/defualt/agent_apply.htm&#160; template for agent.php?act=apply     <br />//add php action handler     <br />agent/apply.php     <br />//add action to admin     <br />switch($action){     <br />&#160; case&#8217;menu&#8217;:     <br />&#160; &#8230;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; array(&#8216;代理商管理&#8217;,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; array(     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;agent_prov&#8217;=&gt;&#8217;代理范围设定&#8217;,     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216;agent_apply&#8217;=&gt;&#8217;代理商申请&#8217;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; )     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ),     <br />&#160; &#8230;     <br />//add case judge to admin/admin.php     <br />&#160; case&#8217;agent_apply&#8217;:     <br />&#160;&#160;&#160; $title=&#8217;代理商申请&#8217;;     <br />&#160;&#160;&#160; $agent=$db-&gt;record(&quot;agentapply&quot;,&quot;company,name,phone,atype,url,address,fax,zip,qq,applytime&quot;);     <br />&#160;&#160;&#160; include(&quot;agent_apply.php&quot;);     <br />&#160;&#160;&#160; break; </p>
<p>//add admin template for agent_apply action    <br />admin/agent_apply.php </p>
<p>====================================================================== </p>
<p>//article category function add    <br />//2009-11-13 </p>
<p>//alter table kefu_article    <br />ALTER TABLE `kefu_article` ADD `category` CHAR( 30 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL AFTER `ntype` </p>
<p>//add table kefu_category    <br />CREATE TABLE IF NOT EXISTS `kefu_category` (     <br />&#160; `id` int(11) NOT NULL auto_increment,     <br />&#160; `title` char(30) default NULL,     <br />&#160; `desc` char(100) default NULL,     <br />&#160; `image` char(255) default NULL,     <br />&#160; PRIMARY KEY&#160; (`id`)     <br />) ENGINE=MyISAM&#160; DEFAULT CHARSET=gbk;     <br />************************************************un-completed********* </p>
<p>===================================================================== </p>
<p>//set default style &#8216;qq&#8217;    <br />//member/member.php     <br />//2009-11-20     <br />case &#8217;style&#8217;:     <br />if($db-&gt;rows(&quot;style&quot;,&quot;companyid=&#8217;$cid&#8217;&quot;)==0)     <br />$db-&gt;insert(&quot;style&quot;,&quot;companyid,posx,x,posy,y,iconstyle,liststyle,tipstyle,dialogstyle&quot;,&quot;$cid|right|0|top|0|001|QQ2006|001|qq&quot;); </p>
<p>//kf.php    <br />if($db-&gt;rows(&quot;style&quot;,&quot;companyid=&#8217;$cid&#8217;&quot;)==0)     <br />$db-&gt;insert(&quot;style&quot;,&quot;companyid,posx,x,posy,y,iconstyle,liststyle,tipstyle,dialogstyle&quot;,&quot;$cid|right|0|top|0|001|QQ2006|001|qq&quot;); </p>
<p>====================================================================== </p>
<p>//company logo upload function    <br />//2009-11-20     <br />//add processor to member/save.php config action for upload backend </p>
<p>&#160;&#160;&#160; //comment by sam 2009-11-19    <br />&#160;&#160;&#160; //$logo=Char_Cv(&quot;logo_&quot;);     <br />&#160;&#160;&#160; &#8230;     <br />&#160;&#160;&#160; $path = &quot;../images/logo_upload/&quot;;     <br />&#160;&#160;&#160; $allow_types=array(&#8216;gif&#8217;,'png&#8217;,'jpg&#8217;);     <br />&#160;&#160;&#160; $allow_max_filesize = 100; //100 KB     <br />&#160;&#160;&#160; //init     <br />&#160;&#160;&#160; $arr_keys&#160;&#160; = array_keys($_FILES);     <br />&#160;&#160;&#160; $file = $_FILES[$arr_keys[0]];     <br />&#160;&#160;&#160; $file_name = $file['name'];     <br />&#160;&#160;&#160; if($file_name){     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_type = get_file_extention($file_name,false);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_tmpname = $file['tmp_name'];     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_error = $file['error'];     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_size = $file['size'];     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_ext=get_file_extention($file_name);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $file_newname = md5(time()).$file_ext;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if($file_error!=0){     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ero(&quot;LOGO上传被中断，请重试。&quot;,&quot;member.php?action=config&quot;);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //file type filter     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(!in_array($file_type, $allow_types)){     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ero(&quot;图片允许的格式为：.gif, .jpg, .png&quot;,&quot;member.php?action=config&quot;);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; //file size filter     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if($file_size &gt; $allow_max_filesize*1024){     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ero(&quot;图片文件须小于&quot;.$allow_max_filesize.&quot; KB&quot;,&quot;member.php?action=config&quot;);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; @move_uploaded_file($file_tmpname,$path.$file_newname) or ero(&quot;LOGO文件上传有误&quot;,&quot;member.php?action=config&quot;);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $logo = $file_newname;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $db-&gt;update(&quot;setting&quot;,&quot;logo&quot;,&quot;$logo&quot;,&quot;companyid=&#8217;$cid&#8217;&quot;);     <br />&#160;&#160;&#160; } </p>
<p>//modified member/config.php template    <br />&lt;tr&gt;     <br />&lt;td align=&quot;right&quot; height=&quot;20&quot;&gt;网站图标：&lt;/td&gt;     <br />&lt;td&gt;     <br />&lt;?=setinput(&quot;file&quot;,&quot;logo_file&quot;,&quot;&quot;,&quot;&quot;,52,100)?&gt;&lt;img src=&quot;../images/membercp/view.gif&quot; title=&quot;&lt;img src=&#8217;../images/membercp/view_icon.gif&#8217;&gt;&quot; style=&quot;cursor:pointer&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;48*48&lt;/font&gt;     <br />&lt;/td&gt;     <br />&lt;/tr&gt; </p>
<p>//modified kf.php for query db-table setting-&gt;logo    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // added by sam 2009-11-19     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $companylogo = $setting[0]['logo']; </p>
<p>//modified kefu/client.inc.php for show company logo    <br />&lt;div class=&quot;logo&quot;&lt;?if($companylogo){?&gt; style=&quot;background:url(images/logo_upload/&lt;?=$companylogo?&gt;) no-repeat;&quot;&lt;?}?&gt;&gt;&lt;?=$dialogtitle?&gt;&lt;/div&gt; </p>
<p>//create a dir to store logo files    <br />mkdir images/logo_upload </p>
<p>===================================================================== </p>
<p>//worker avatar upload/choice function add    <br />//2009-11-25 </p>
<p>//alter table kefu_worker, add avatar field    <br />ALTER TABLE `kefu_worker` ADD `avatar` CHAR( 255 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL AFTER `style` </p>
<p>************************************************un-completed********* </p>
<p>===================================================================== </p>
<p>//fetion offline sms function    <br />//2009-11-27     <br />/include/javascript/dialog.js     <br />function send modified myfun part     <br />function sendSms modified myfun part </p>
<p>modified getdata/content/client.php </p>
<p>getdata/save.php    <br />add ntype = imsg </p>
<p>include/fetion/class_fetion.php modified(*old fetion api url is updated)    <br />&#160;&#160;&#160; //communicate url     <br />&#160;&#160;&#160; private static $sd_url = &#8216;<a href="http://221.130.44.194/ht/sd.aspx';">http://221.130.44.194/ht/sd.aspx&#8217;;</a>     <br />&#160;&#160;&#160; //sign in url     <br />&#160;&#160;&#160; private static $sign_in_url = &quot;<a href="https://uid.fetion.com.cn/ssiportal/SSIAppSignIn.aspx&quot;;">https://uid.fetion.com.cn/ssiportal/SSIAppSignIn.aspx&quot;;</a></p>
<p>=====================================================================    <br />//worker avatar select function     <br />//2009-11-30 </p>
<p>add /include/javascript/jquery-1.3.2.min.js    <br />add /images/logo_upload/*.gif </p>
<p>modified /member/member.php action config    <br />add db-&gt;load($avatar) </p>
<p>modified /member/modify.php    <br />add &lt;script&gt; include jQuery     <br />add &lt;style&gt; for #popup box etc.     <br />modified     <br />&#160;&#160;&#160; &lt;?=setinput(&quot;text&quot;,&quot;avatar&quot;,$avatar,&quot;readonly&quot;,52,20)?&gt;&lt;input type=&quot;button&quot; value=&quot;选择&quot; id=&quot;btn_upload&quot; /&gt;     <br />&#160;&#160;&#160; &lt;div id=&quot;popup&quot;&gt;     <br />&#160;&#160;&#160; &lt;ul id=&quot;lst_avatar&quot;&gt;     <br />&#160;&#160;&#160; &lt;!&#8211;avatar auto-generator place holder&#8211;&gt;     <br />&#160;&#160;&#160; &lt;/ul&gt;     <br />&#160;&#160;&#160; &lt;/div&gt; </p>
<p>modified /member/save.php action config    <br />$avatar = $_POST['avatar'];     <br />db-&gt;write($avatar); </p>
<p>====================================================================== </p>
<p>//online status bug fix    <br />modified kf.php     <br />//2009-12-1     <br />//$db -&gt; update(&quot;worker&quot;, &quot;online&quot;, &quot;0&quot;, &quot;companyid=&#8217;$cid&#8217; and lasttime&lt;&quot; . ($time-20)); -&gt;     <br />$db -&gt; update(&quot;worker&quot;, &quot;online&quot;, &quot;0&quot;, &quot;companyid=&#8217;$cid&#8217; and updatetime&lt;&quot; . ($time-20)); </p>
<p>====================================================================== </p>
<p>//kefu hide/show function    <br />//2009-12-2     <br />add images/kefu/tab.gif     <br />modified js function closediv </p>
<p>function CloseDiv(){    <br />&#160; //$(&quot;frame_div&quot;).style.display=&#8217;none&#8217;;     <br />&#160; //floatstop=true;     <br />&#160; window.frame_div_innerHTML = $(&quot;frame_div&quot;).innerHTML;     <br />&#160; $(&quot;frame_div&quot;).innerHTML = &#8216;&lt;div style=&quot;background:url(images/kefu/tab.gif);color:white;width:20px;height=60px;float:right;&quot; onclick=&quot;$(\&#8217;frame_div\&#8217;).innerHTML=window.frame_div_innerHTML&quot;&gt;&lt;/div&gt;&#8217;;     <br />} </p>
<p>======================================================================</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/first-month-update-list-of-my-new-work/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL 多表查询</title>
		<link>http://blog.exxred.com/mysql-multi-tables-query</link>
		<comments>http://blog.exxred.com/mysql-multi-tables-query#comments</comments>
		<pubDate>Tue, 01 Dec 2009 15:50:41 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.exxred.com/mysql-multi-tables-query-2</guid>
		<description><![CDATA[假如有如下三张表：
table1:



id
field1


1
v11


2
v22



table2:



id
field2


1
v21


2
v22


3
v23


4
v24



table3:



id
field3


1
v31


2
v32


3
v33


4
v34


5
v35


6
v36



三表联合查询：
select A.field, D.field2, D.field3      from table1 A left join (       select B.id, B.field2, C.field3 from table2 B left join table3 C on B.id = C.id       ) D on A.id = D.id

返回结果：



id
field1
field2
field3


1
v11
v21
v31


2
v12
v22
v32



]]></description>
			<content:encoded><![CDATA[<p>假如有如下三张表：</p>
<p>table1:</p>
<table border="0" cellspacing="0" cellpadding="2" width="80">
<tbody>
<tr>
<td valign="top" width="40">id</td>
<td valign="top" width="40">field1</td>
</tr>
<tr>
<td valign="top" width="40">1</td>
<td valign="top" width="40">v11</td>
</tr>
<tr>
<td valign="top" width="40">2</td>
<td valign="top" width="40">v22</td>
</tr>
</tbody>
</table>
<p>table2:</p>
<table border="0" cellspacing="0" cellpadding="2" width="80">
<tbody>
<tr>
<td valign="top" width="40">id</td>
<td valign="top" width="40">field2</td>
</tr>
<tr>
<td valign="top" width="40">1</td>
<td valign="top" width="40">v21</td>
</tr>
<tr>
<td valign="top" width="40">2</td>
<td valign="top" width="40">v22</td>
</tr>
<tr>
<td valign="top" width="40">3</td>
<td valign="top" width="40">v23</td>
</tr>
<tr>
<td valign="top" width="40">4</td>
<td valign="top" width="40">v24</td>
</tr>
</tbody>
</table>
<p>table3:</p>
<table border="0" cellspacing="0" cellpadding="2" width="80">
<tbody>
<tr>
<td valign="top" width="40">id</td>
<td valign="top" width="40">field3</td>
</tr>
<tr>
<td valign="top" width="40">1</td>
<td valign="top" width="40">v31</td>
</tr>
<tr>
<td valign="top" width="40">2</td>
<td valign="top" width="40">v32</td>
</tr>
<tr>
<td valign="top" width="40">3</td>
<td valign="top" width="40">v33</td>
</tr>
<tr>
<td valign="top" width="40">4</td>
<td valign="top" width="40">v34</td>
</tr>
<tr>
<td valign="top" width="40">5</td>
<td valign="top" width="40">v35</td>
</tr>
<tr>
<td valign="top" width="40">6</td>
<td valign="top" width="40">v36</td>
</tr>
</tbody>
</table>
<p>三表联合查询：</p>
<blockquote><p>select A.field, D.field2, D.field3      <br />from table1 A left join (       <br />select B.id, B.field2, C.field3 from table2 B left join table3 C on B.id = C.id       <br />) D on A.id = D.id</p>
</blockquote>
<p>返回结果：</p>
<table border="0" cellspacing="0" cellpadding="2" width="80">
<tbody>
<tr>
<td valign="top" width="20">id</td>
<td valign="top" width="20">field1</td>
<td valign="top" width="20">field2</td>
<td valign="top" width="20">field3</td>
</tr>
<tr>
<td valign="top" width="20">1</td>
<td valign="top" width="20">v11</td>
<td valign="top" width="20">v21</td>
<td valign="top" width="20">v31</td>
</tr>
<tr>
<td valign="top" width="20">2</td>
<td valign="top" width="20">v12</td>
<td valign="top" width="20">v22</td>
<td valign="top" width="20">v32</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.exxred.com/mysql-multi-tables-query/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
