<?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/"
	>

<channel>
	<title>Codeans.com - คำตอบของการเขียนเว็บไซต์</title>
	<atom:link href="http://www.codeans.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codeans.com</link>
	<description>แหล่งความรู้ สอนเขียนเว็บไซต์ ด้วย HTML, PHP, Javascript, CSS, AJAX, MySQL และอื่น ๆ</description>
	<pubDate>Fri, 06 Nov 2009 05:54:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>การตรวจสอบข้อมูลอินพุต หรือ validate ด้วย Regular expression</title>
		<link>http://www.codeans.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5%e0%b8%ad%e0%b8%b4%e0%b8%99%e0%b8%9e%e0%b8%b8%e0%b8%95/</link>
		<comments>http://www.codeans.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5%e0%b8%ad%e0%b8%b4%e0%b8%99%e0%b8%9e%e0%b8%b8%e0%b8%95/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 05:53:40 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=101</guid>
		<description><![CDATA[การกรองข้อมูลหรือ validate data เป็นขั้นตอนที่โปรแกรมเมอร์ จำเป็นต้องสร้าง อัลกอริทึมเพื่อมารองรับงานด้านนี้ ซึ่งโดยปกติสามารถทำได้ทั้งส่วนที่เป็นโค้ดดิ้งทั้งทางด้าน client side script และ server side script โดยครั้งนี้ผมจะนำเสนอ วิธีการ validate data โดยใช้ PHP script ด้วยการใช้ Regular expression
]]></description>
			<content:encoded><![CDATA[<p>การกรองข้อมูลหรือ validate data เป็นขั้นตอนที่โปรแกรมเมอร์ จำเป็นต้องสร้าง อัลกอริทึมเพื่อมารองรับงานด้านนี้ ซึ่งโดยปกติสามารถทำได้ทั้งส่วนที่เป็นโค้ดดิ้งทั้งทางด้าน client side script และ server side script โดยครั้งนี้ผมจะนำเสนอ วิธีการ validate data โดยใช้ PHP script ด้วยการใช้ Regular expression</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/11/06/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%a3%e0%b8%a7%e0%b8%88%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%a1%e0%b8%b9%e0%b8%a5%e0%b8%ad%e0%b8%b4%e0%b8%99%e0%b8%9e%e0%b8%b8%e0%b8%95/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP สคริปต์สำหรับหาค่า ตัวแปร ใน Querystring ของ URL.</title>
		<link>http://www.codeans.com/2009/09/21/php-%e0%b8%aa%e0%b8%84%e0%b8%a3%e0%b8%b4%e0%b8%9b%e0%b8%95%e0%b9%8c%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-%e0%b8%95%e0%b8%b1%e0%b8%a7/</link>
		<comments>http://www.codeans.com/2009/09/21/php-%e0%b8%aa%e0%b8%84%e0%b8%a3%e0%b8%b4%e0%b8%9b%e0%b8%95%e0%b9%8c%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-%e0%b8%95%e0%b8%b1%e0%b8%a7/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 07:28:39 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[php get querystring]]></category>

		<category><![CDATA[Querystring]]></category>

		<category><![CDATA[Url]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=197</guid>
		<description><![CDATA[ปกติแล้วสำหรับการหาค่า ตัวแปร Qeurystring ของ URL (ในเพจปัจจุบัน) สามารถทำได้โดย การเรียกใช้ตัวแปร $_GET ซึ่งจะเก็บตัวแปรต่างๆ ของ Querystring ในรูปแบบของ array แต่ถ้าต้องการหาค่า Querystring ของ URL อื่น ๆ จะทำอย่างไร มาดูกันครับ
โจทย์ ให้หาค่าตัวแปร Querystring ของ URL =&#62; http://www.codeans.com/store.php?location=surat&#38;shop=0&#38;sales_id=86
&#60;?php
$url =http://www.codeans.com/store.php?location=surat&#38;shop=0&#38;sales_id=86;
$lastUrl =parse_url($_SERVER['HTTP_REFERER']);
parse_str($lastUrl['query'], $lastGet);
// show result
print &#8220;&#60;pre&#62;&#8221;;
print_r($lastGet);
?&#62;
จะเห็นว่าโปรแกรมจะคืนค่า querystring ให้ตัวแปร $lastGet ในรูปแบบของอาร์เรย์
]]></description>
			<content:encoded><![CDATA[<p>ปกติแล้วสำหรับการหาค่า ตัวแปร Qeurystring ของ URL (ในเพจปัจจุบัน) สามารถทำได้โดย การเรียกใช้ตัวแปร $_GET ซึ่งจะเก็บตัวแปรต่างๆ ของ Querystring ในรูปแบบของ array แต่ถ้าต้องการหาค่า Querystring ของ URL อื่น ๆ จะทำอย่างไร มาดูกันครับ</p>
<p><span style="text-decoration: underline;"><strong>โจทย์ </strong></span>ให้หาค่าตัวแปร Querystring ของ URL =&gt; http://www.codeans.com/store.php?location=surat&amp;shop=0&amp;sales_id=86</p>
<div class="codesnip-container" >&lt;?php<br />
$url =http://www.codeans.com/store.php?location=surat&amp;shop=0&amp;sales_id=86;<br />
$lastUrl =parse_url($_SERVER['HTTP_REFERER']);<br />
parse_str($lastUrl['query'], $lastGet);</p>
<p>// show result<br />
print &#8220;&lt;pre&gt;&#8221;;<br />
print_r($lastGet);<br />
?&gt;</p></div>
<p>จะเห็นว่าโปรแกรมจะคืนค่า querystring ให้ตัวแปร $lastGet ในรูปแบบของอาร์เรย์</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/09/21/php-%e0%b8%aa%e0%b8%84%e0%b8%a3%e0%b8%b4%e0%b8%9b%e0%b8%95%e0%b9%8c%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a%e0%b8%ab%e0%b8%b2%e0%b8%84%e0%b9%88%e0%b8%b2-%e0%b8%95%e0%b8%b1%e0%b8%a7/feed/</wfw:commentRss>
		</item>
		<item>
		<title>วิธีแก้ปัญหาส่งอีเมลไป hotmail แล้วเข้า junk box</title>
		<link>http://www.codeans.com/2009/07/28/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b8%ad%e0%b8%b5%e0%b9%80%e0%b8%a1%e0%b8%a5%e0%b9%84%e0%b8%9b-h/</link>
		<comments>http://www.codeans.com/2009/07/28/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b8%ad%e0%b8%b5%e0%b9%80%e0%b8%a1%e0%b8%a5%e0%b9%84%e0%b8%9b-h/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 05:06:47 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Email]]></category>

		<category><![CDATA[Directmail]]></category>

		<category><![CDATA[Hotmail Inbox]]></category>

		<category><![CDATA[Hotmail Mail]]></category>

		<category><![CDATA[Junk Box]]></category>

		<category><![CDATA[Junkbox]]></category>

		<category><![CDATA[Yahoo]]></category>

		<category><![CDATA[Yahoo Mail]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=189</guid>
		<description><![CDATA[ปกติแล้วการเขียนโปรแกรมส่งเมล สามารถส่งได้ง่าย ๆ สบาย ๆ ปิดตาเขียนก็ส่งได้แล้ว
แต่ปัจจุบัน ไม่ได้เป็นยังแต่ก่อนแล้ว ผู้ให้บริการอีเมล เช่น hotmail, gmail, yahoo mail ต่างให้ความสนใจเรื่องของ privacy และ policy ของผู้ใช้มาก จึงมีการวางมาตรการเพื่อป้องกัน อีเมลขยะและอีเมลที่เป็นมาจาก sender หมวกดำ วิธีแรกที่หลาย ๆ ที่ทำการ ทำตัวฟิลเตอร์ เพื่อกัน spam mail เหล่านี้
เจ้าตัวฟิลเตอร์นี่แหละครับ คือตัวที่ทำให้เมลที่พวกเรา ส่งไปที่ hotmail แล้วเข้า junkbox
โอเค ยังไม่ต้องตกใจครับ ถ้าเราไม่ได้ทำอะไรผิด ปัญหาก็ย่อมมีทางแก้ไขเสมอ
ผมเคยรีเซิร์ทเรื่องนี้มานานซัก 2 ปีแล้ว เพราะเมื่อก่อน ผมจะต้องส่งอีเมลที่เป็นลักษณะ directmail เพื่อส่ง โปรโมชั่นให้ลูกค้าทุกเดือน ตอนนั้นการส่งเมลไป hotmail ทุกฉบับจะเข้า inbox ของ hotmail จนกระทั่ง ประมาณต้นปี 2007 ผมได้รับจดหมายจากลูกค้าว่าทำไมอีเมลสั่งซื้อสินค้า ไปอยู่ใน [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-201 alignleft" style="padding: 4px;" title="hotmail" src="http://www.codeans.com/wp-content/uploads/2009/07/hotmail-150x150.jpg" alt="hotmail" width="150" height="150" />ปกติแล้วการเขียนโปรแกรมส่งเมล สามารถส่งได้ง่าย ๆ สบาย ๆ ปิดตาเขียนก็ส่งได้แล้ว<br />
แต่ปัจจุบัน ไม่ได้เป็นยังแต่ก่อนแล้ว ผู้ให้บริการอีเมล เช่น hotmail, gmail, yahoo mail ต่างให้ความสนใจเรื่องของ privacy และ policy ของผู้ใช้มาก จึงมีการวางมาตรการเพื่อป้องกัน อีเมลขยะและอีเมลที่เป็นมาจาก sender หมวกดำ วิธีแรกที่หลาย ๆ ที่ทำการ ทำตัวฟิลเตอร์ เพื่อกัน spam mail เหล่านี้<br />
เจ้าตัวฟิลเตอร์นี่แหละครับ คือตัวที่ทำให้เมลที่พวกเรา ส่งไปที่ hotmail แล้วเข้า junkbox<br />
โอเค ยังไม่ต้องตกใจครับ ถ้าเราไม่ได้ทำอะไรผิด ปัญหาก็ย่อมมีทางแก้ไขเสมอ</p>
<p>ผมเคยรีเซิร์ทเรื่องนี้มานานซัก 2 ปีแล้ว เพราะเมื่อก่อน ผมจะต้องส่งอีเมลที่เป็นลักษณะ directmail เพื่อส่ง โปรโมชั่นให้ลูกค้าทุกเดือน ตอนนั้นการส่งเมลไป hotmail ทุกฉบับจะเข้า inbox ของ hotmail จนกระทั่ง ประมาณต้นปี 2007 ผมได้รับจดหมายจากลูกค้าว่าทำไมอีเมลสั่งซื้อสินค้า ไปอยู่ใน junkbox ก็เลยต้องหาวิธีแก้ไข ซึ่งก็มีหลายวิธี แต่ที่จะกล่าวต่อไปเป็นวิธีที่ ดูดีมีระดับมากที่สุด (555 หมายถึงที่ฝรั่งเค้าทำกัน)</p>
<p><span style="text-decoration: underline;"><strong>1.  ต้องเช็คก่อนว่า domain ของคุณ มี SPF/SIDF records หรือยัง</strong><br />
</span>ตรวจสอบได้ที่ <a href="http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/">http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/</a> แต่ผมใช้วิธีบอก บอกให้ network admin ของเว็บ hosting ทำให้(โดยส่งลิ้งค์นี้ไปให้)</p>
<p><strong><span style="text-decoration: underline;">2. ต่อมาต้องเช็คว่า IPaddress(IPs ของ SMTP server ส่วนใหญ่เป็น IPs เดียวกับ IPs ของโมเมนของคุณ) ที่เราใช้ส่งเมล มีการทำ Reverse DNS หรือยัง?</span><br />
</strong>เช็คกับ server ของ AOL ได้ที่นี่   <a href="http://postmaster.aol.com/tools/rdns.html">http://postmaster.aol.com/tools/rdns.html</a> ถ้ามีแล้วจะได้คำตอบดังนี้<br />
<strong>DNS Server Response:<br />
</strong><span style="font-family: bold; color: black;"><strong>xxxxxxxxx.net</strong></span><br />
<strong>Success!</strong> It appears you have Reverse DNS.<br />
แต่ถ้าไม่มีต้องบอกให้ network admin คนเดิมช่วยเพิ่ม Reverse DNS ให้</p>
<p><strong><span style="text-decoration: underline;">3. หลังจากเรามีทรัพยากรเรียบร้อยแล้ว</span></strong><br />
ที่นี้ต้องแจ้งลบ ตัวคุณออกจาก spam filter list ของ hotmail ไปที่ลิ้งค์นี้น่ะครับ<br />
<a href="https://support.msn.com/eform.aspx?productKey=edfsjmrpp&amp;page=support_home_options_form_byemail&amp;ct=eformts&amp;scrx=1">https://support.msn.com/eform.aspx?productKey=edfsjmrpp&amp;page=support_home_options_form_byemail&amp;ct=eformts&amp;scrx=1</a></p>
<p>ที่หน้านี้คุณต้องกรอกข้อมูลต่าง ๆ เกี่ยวกับตัวคุณ เว็บคุณ และพฤติกรรมการส่งเมลของคุณ</p>
<p><strong>โอเค ผมมีตัวอย่างให้ดูเป็นแนวทาง</strong><br />
Service: (ชื่อบริการ)<br />
<span style="color: #ff0000;">Junk Mail Reporting Partner Program</span></p>
<p>What type of problem do you have?<br />
Is this a request to join the program or an update to an existing partner account? (ขอเป็นพาธเนอร์กับ hotmail)<br />
<span style="color: #ff0000;">Yes<br />
</span><br />
Primary company contact name (ชื่อของคุณ ชื่อเล่นก็ได้น่ะ)<br />
<span style="color: #ff0000;">xxxxx</span></p>
<p>How would you describe your company or yourself? (ระบุเกี่ยวกับตัวคุณหรือองค์กรของคุณว่าทำไร)<br />
<span style="color: #ff0000;">Business (non-marketing) [Business (non-marketing)]<br />
</span><br />
Primary company contact email address<br />
<span style="color: #ff0000;"> <a href="mailto:info@xxxx.net">info@xxxx.net</a><br />
</span><br />
The home page where people sign up for your service:(ชื่อโดเมนที่ส่งอีเมล)<br />
<span style="color: #ff0000;">xxxx.net<br />
</span><br />
Contact phone number: (หมายเลขติดต่อกลับ ใส่ไรก็ได้ เค้าไม่โทรมาหรอก)<br />
<span style="color: #ff0000;">+66 081555xxxx<br />
</span><br />
The opt-out link for each list or a link to your organization&#8217;s Privacy Policy: (ใส่ URL หน้า Privacy or Policy ตรงนี้ฝรั่งให้ความสำคัญมาก)<br />
<span style="color: #ff0000;"> </span><a href="http://www.xxxx.net"><span style="color: #ff0000;">http://www.xxxx.net</span></a></p>
<p>Sender IPs for verification: (ใส่ ipaddress ของ SMTP server)<br />
<span style="color: #ff0000;">202.000.60.xxx </span></p>
<p>Are the IP addresses registered under your company&#8217;s name or domain name? (ตรงนี้ผมไม่แน่ใจ แต่ผมใส่ yes น่ะ คือใช่ไว้ก่อน 555)<br />
<span style="color: #ff0000;">Yes [Yes]<br />
</span><br />
If no, do you have exclusive sending rights from the IP via your hosting company (not shared with any other senders)? (เนื่องจาก ข้อก่อนใส่ yes ข้อนี้เลยเป็น no)<br />
<span style="color: #ff0000;"> No [No]<br />
</span><br />
Can you remove customers who complain from your lists, or take action against spam accounts? (ข้อนี้ก็ใส่ Yes)<br />
<span style="color: #ff0000;">Yes [Yes]<br />
</span><br />
Forwarding e-mail address (where complaints should be sent): (หอร์เวิร์ดอีเมล ผมใส่อีเมลอีกอันเข้าไป)<br />
<a href="mailto:support@xxxx.net"><span style="color: #ff0000;">support@xxxx.net</span></a></p>
<p>ทำการ submit และรอประมาณ 24-48 ชม ก็จะมี staff ของ hotmail ติดต่อกลับมา แลบอกว่าใช้ได้แล้ว<br />
แต่ อาจจะมีบางอย่างไม่โอเคเช่น<br />
- เนื้อหาอีเมลของคุณเสี่ยงเกินไป staff จะบอกให้คุณ ปรับแต่งอีเมลของคุณ คุณอาจเอาฟังก์ชั่นส่งเมลจากลิ้งค์นี้ไปใช้ก็ได้ครับ <a href="http://www.codeans.com/2009/02/04/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b9%80%e0%b8%a1%e0%b8%a5-%e0%b9%82%e0%b8%94%e0%b8%a2-php-%e0%b8%aa%e0%b9%88%e0%b8%87/">http://www.codeans.com/2009/02/04/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b9%80%e0%b8%a1%e0%b8%a5-%e0%b9%82%e0%b8%94%e0%b8%a2-php-%e0%b8%aa%e0%b9%88%e0%b8%87/</a></p>
<p>แต่หากไม่ได้จริง เมลมาคุยกันครับ <a href="mailto:info@codeans.com">info@codeans.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/07/28/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b9%81%e0%b8%81%e0%b9%89%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b8%ad%e0%b8%b5%e0%b9%80%e0%b8%a1%e0%b8%a5%e0%b9%84%e0%b8%9b-h/feed/</wfw:commentRss>
		</item>
		<item>
		<title>สร้างเว็บเซิร์ฟเวอร์บน Thumb drive. กัน</title>
		<link>http://www.codeans.com/2009/07/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b9%80%e0%b8%8b%e0%b8%b4%e0%b8%a3%e0%b9%8c%e0%b8%9f%e0%b9%80%e0%b8%a7%e0%b8%ad%e0%b8%a3%e0%b9%8c%e0%b8%9a%e0%b8%99-t/</link>
		<comments>http://www.codeans.com/2009/07/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b9%80%e0%b8%8b%e0%b8%b4%e0%b8%a3%e0%b9%8c%e0%b8%9f%e0%b9%80%e0%b8%a7%e0%b8%ad%e0%b8%a3%e0%b9%8c%e0%b8%9a%e0%b8%99-t/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 06:56:11 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Webserver]]></category>

		<category><![CDATA[ทั่วไป]]></category>

		<category><![CDATA[Amp]]></category>

		<category><![CDATA[Apache Php Mysql]]></category>

		<category><![CDATA[Appserv]]></category>

		<category><![CDATA[Default Extension]]></category>

		<category><![CDATA[Thumb Drive]]></category>

		<category><![CDATA[xampp]]></category>

		<category><![CDATA[xampp portable]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=180</guid>
		<description><![CDATA[หลายท่าน ทั้ง PHP เว็บเดเวลลอปเปอร์มือใหม่และมือเก่า ต่างก็มี เว็บเซิร์ฟเวอร์ สำหรับทำให้คอมพิวเตอร์หรือแล็ปท็อปของคุณเป็นเว็บเซิร์ฟเวอร์จำลอง เพื่อใช้ในการพัฒนาเว็บไซต์
สำหรับชาวไทยแล้วตัวที่เป็นที่นิยมสุด คือ appserv ที่มีขั้นตอนการติดตั้งที่ง่าย แต่ในส่วนของ default extension ยังไม่ค่อยรองรับการพัฒนาเว็บไซต์ในระดับ advance ได้ เช่น ฟีเจอร์ในการ switch php4 และ php5, การจำลอง SSL.
แตวันนี้ผมขอแนะนำ Webserver suite อีกตัวนึ่ง ซึ่งผมใช้อยู่และประสิทธิภาพดีมาก ๆ คือ Xampp portable เรามาดูข้อดีข้อเสียกันดีกว่าครับ ว่ามันมีดีอาราย..
ข้อดี
- รองรับ มันสามารถติดตั้งบน thumbdrive ได้สบาย (ควรมีพื้นที่มากกว่า 2GB เพราะมันจะทำให้คุณเล่นกับมันได้เยอะ)
- มีโครงสร้างของ module ต่าง ๆ เช่น apache, php, mysql ที่ดูแล้วเข้าใจง่าย (ทำให้ง่ายต่อการปรับแต่ง)
- default module &#38; [...]]]></description>
			<content:encoded><![CDATA[<p>หลายท่าน ทั้ง PHP เว็บเดเวลลอปเปอร์มือใหม่และมือเก่า ต่างก็มี เว็บเซิร์ฟเวอร์ สำหรับทำให้คอมพิวเตอร์หรือแล็ปท็อปของคุณเป็นเว็บเซิร์ฟเวอร์จำลอง เพื่อใช้ในการพัฒนาเว็บไซต์<br />
สำหรับชาวไทยแล้วตัวที่เป็นที่นิยมสุด คือ appserv ที่มีขั้นตอนการติดตั้งที่ง่าย แต่ในส่วนของ default extension ยังไม่ค่อยรองรับการพัฒนาเว็บไซต์ในระดับ advance ได้ เช่น ฟีเจอร์ในการ switch php4 และ php5, การจำลอง SSL.</p>
<p>แตวันนี้ผมขอแนะนำ Webserver suite อีกตัวนึ่ง ซึ่งผมใช้อยู่และประสิทธิภาพดีมาก ๆ คือ Xampp portable เรามาดูข้อดีข้อเสียกันดีกว่าครับ ว่ามันมีดีอาราย..</p>
<p>ข้อดี<br />
- รองรับ มันสามารถติดตั้งบน thumbdrive ได้สบาย (ควรมีพื้นที่มากกว่า 2GB เพราะมันจะทำให้คุณเล่นกับมันได้เยอะ)<br />
- มีโครงสร้างของ module ต่าง ๆ เช่น apache, php, mysql ที่ดูแล้วเข้าใจง่าย (ทำให้ง่ายต่อการปรับแต่ง)<br />
- default module &amp; extension ของ PHP ค่อนข้างสมบูรณ์ เช่น CURL, MBSTRING, ICONV และอื่น ๆ<br />
- รองรับ  module อื่น ๆ ในการพัฒนา ServerSide ตัวอื่น ๆ เช่น Python, Ruby On rail, Tomcat<br />
- สามารถ switch PHP 4 &amp; PHP5 ได้โดยไม่ต้องจอด เอ้ย โดยการเรียกคอมมานต์ตัวเดียว</p>
<p>วิธีการ<br />
- ต้องติดตั้งตัว engine หลักสำหรับการรัน Portable Apps บน Thumb drive ก่อน ดาวน์โหลดได้ที่นี่ http://portableapps.com/download และทำการติดตั้งบน thumb drive ของคุณ<br />
- โหลดตัว xampp portable แล้วติดตั้งผ่านตัว Portable Apps เท่านี้ก็สามารถรัน เว็บเซิร์ฟเวอร์บน thumb drive ของคุณได้แล้ว</p>
<p>ไว้ตอนหน้า ผมจะแนะนำการรัน python ผ่าน xampp portable ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/07/12/%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b9%80%e0%b8%8b%e0%b8%b4%e0%b8%a3%e0%b9%8c%e0%b8%9f%e0%b9%80%e0%b8%a7%e0%b8%ad%e0%b8%a3%e0%b9%8c%e0%b8%9a%e0%b8%99-t/feed/</wfw:commentRss>
		</item>
		<item>
		<title>วิธีสร้าง subdomain โดยใช้ mod rewrite ของ apache ครับ</title>
		<link>http://www.codeans.com/2009/07/10/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-subdomain-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-mod-rewrite-%e0%b8%82%e0%b8%ad%e0%b8%87-apache/</link>
		<comments>http://www.codeans.com/2009/07/10/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-subdomain-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-mod-rewrite-%e0%b8%82%e0%b8%ad%e0%b8%87-apache/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 11:23:22 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Apache]]></category>

		<category><![CDATA[Mod Rewrite]]></category>

		<category><![CDATA[Seo]]></category>

		<category><![CDATA[Subdomain]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=176</guid>
		<description><![CDATA[ครับ กรณีนี้มีคนรีเควสเยอะมากมาย บางที่ก็ให้คำตอบ(แต่มักจะไม่ค่อยครบถ้วนเท่าไหร่)
เอาเป็นว่าลองอ่าน article นี้แล้วกัน
การทำ subdomain โดยใช้ mod rewrite ของ apache นั้น จุดประสงค์ก็มีหลายอย่าง
เช่น เพื่อทำให้โดเมนของ ผู้ใช้ระบบดูน่าเชื่อถือมากขึ้น, บางท่านบอกว่าทำให้ SEO ดีขึ้น
โจทย์ : จงสร้าง subdomain ให้ user &#8220;domori&#8221; ในเว็บ blogs.com (โดยปัจจุบันการอ้างถึง user
&#8220;domori&#8221; ใน blogs.com ทำโดยการเรียก http://www.blogs.com/member.php?user=domori)
วิธีการทำมีดังนี้
1. ก่อนอื่นต้องทำการสร้าง wildcard(*) ใน zone ของ blogs.com ก่อนครับ
(โดยคนที่จดโดเมนของ registrar ต่างประเทศเช่น Godaddy.com, Name.com สามารถเข้าไปแก้ไขในส่วนของ DNS management ได้เลย แต่สำหรับการจดผ่าน ผู้ให้บริการในไทย นั้นคงต้องโทรไปบอกให้เขาเพิ่มให้ครับ)
การสร้าง wildcard(*) ทำดังนี้ เพิ่ม record  ใน zone ของ [...]]]></description>
			<content:encoded><![CDATA[<p>ครับ กรณีนี้มีคนรีเควสเยอะมากมาย บางที่ก็ให้คำตอบ(แต่มักจะไม่ค่อยครบถ้วนเท่าไหร่)<br />
เอาเป็นว่าลองอ่าน article นี้แล้วกัน<br />
การทำ subdomain โดยใช้ mod rewrite ของ apache นั้น จุดประสงค์ก็มีหลายอย่าง<br />
เช่น เพื่อทำให้โดเมนของ ผู้ใช้ระบบดูน่าเชื่อถือมากขึ้น, บางท่านบอกว่าทำให้ SEO ดีขึ้น</p>
<p><span style="text-decoration: underline;">โจทย์ :</span> จงสร้าง subdomain ให้ user &#8220;domori&#8221; ในเว็บ blogs.com (โดยปัจจุบันการอ้างถึง user<br />
&#8220;domori&#8221; ใน blogs.com ทำโดยการเรียก <a href="http://www.blogs.com/member.php?user=domori">http://www.blogs.com/member.php?user=domori</a>)</p>
<p><span style="text-decoration: underline;">วิธีการทำมีดังนี้<br />
</span>1. ก่อนอื่นต้องทำการสร้าง wildcard(*) ใน zone ของ blogs.com ก่อนครับ<br />
(โดยคนที่จดโดเมนของ registrar ต่างประเทศเช่น Godaddy.com, Name.com สามารถเข้าไปแก้ไขในส่วนของ DNS management ได้เลย แต่สำหรับการจดผ่าน ผู้ให้บริการในไทย นั้นคงต้องโทรไปบอกให้เขาเพิ่มให้ครับ)<br />
การสร้าง wildcard(*) ทำดังนี้ เพิ่ม record  ใน zone ของ blogs.com (ด้านล่างนี้เลย)<br />
*.blogs.com IN CNAME blogs.com<br />
หลังจากนั้น ลองทดสอบดูโดยการ ping domori.blogs.com ถ้าได้ก็จะมี result กลับมา</p>
<p>2. หลังจาก ทะลวงช่อง DNS ให้ domori แล้ว ต่อไปก็คือต้องมาจัดการ httpd ของ webhosting ว่าเมื่อมีการ request domori.blogs.com แล้วจะให้วิ่งไปไหน โดยการเพิ่ม alias ใน virtaul host ของ blogs.com ใน ไฟล์httpd ดังนี้<br />
ServerAlias <a href="http://www.blogs.com">www.blogs.com</a> blogs.com <span style="color: #ff0000;">*.blogs.com</span> &lt;= เพิ่มอันนี้เข้าไป</p>
<p>3. เท่านี้ domori.blogs.com ก็เกือบจะใช้ได้แล้ว <img src='http://www.codeans.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> แต่ยังก่อน เราต้องมาเขียน .htaccess เพื่อจัดการ rewrite rule <a href="http://www.blogs.com/member.php?user=domori">http://www.blogs.com/member.php?user=domori</a> เป็น <a href="http://domori.blogs.com">http://domori.blogs.com</a><br />
โดย สร้าง .htaccess เก็บไว้ใน public_html น่ะครับ ส่วนในไฟล์ .htaccess มีเนื้อหาสาระดังนี้</p>
<p>Options -Indexes<br />
Options +FollowSymLinks<br />
RewriteEngine On</p>
<p>RewriteCond %{HTTP_HOST} !^www\.blogs.com<br />
RewriteCond %{HTTP_HOST} ([^.]+)\.blogs.com<br />
RewriteRule ^(.*)$ member.php?user=%1</p>
<p>เท่านี้ domori ก็กระโดดแซง ทั้ง member.php และ blogs.com ไปอยู่ข้างหน้า กลายเป็น domori.blogs.com ได้แล้ว ไว้เจอกันใหม่ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/07/10/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%aa%e0%b8%a3%e0%b9%89%e0%b8%b2%e0%b8%87-subdomain-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-mod-rewrite-%e0%b8%82%e0%b8%ad%e0%b8%87-apache/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ฟังก์ชั่น PHP สำหรับ ลบโฟลเดอร์ ที่มีไฟล์อยู่ภายใน (Delete not empty folder).</title>
		<link>http://www.codeans.com/2009/06/02/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99-php-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-%e0%b8%a5%e0%b8%9a%e0%b9%82%e0%b8%9f%e0%b8%a5%e0%b9%80/</link>
		<comments>http://www.codeans.com/2009/06/02/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99-php-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-%e0%b8%a5%e0%b8%9a%e0%b9%82%e0%b8%9f%e0%b8%a5%e0%b9%80/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 10:04:15 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Backup Folder]]></category>

		<category><![CDATA[Delete]]></category>

		<category><![CDATA[Empty Folder]]></category>

		<category><![CDATA[File Folder]]></category>

		<category><![CDATA[Glob]]></category>

		<category><![CDATA[Map]]></category>

		<category><![CDATA[php delete not empty folder]]></category>

		<category><![CDATA[Php Function]]></category>

		<category><![CDATA[Quota]]></category>

		<category><![CDATA[Rmdir]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=170</guid>
		<description><![CDATA[ปกติบน ยูนิกส์นั้น การ ลบ ไฟล์หรือโฟลเดอร์สามารถทำได้โดยใช้คอมมานต์
rm -rf {file &#124; folder}
แต่สำหรับการลบ โฟลเดอร์ นั้นอาจจะเป็นเรื่องที่น่าปวดหัวยิ่ง เนื่องจากฟังก์ชั่นในการลบ คือ rmdir นั้น. จะสามารถใช้ได้ก็ต่อเมื่อ โฟลเดอร์นั้นว่าง (ไม่มีไฟล์หรือโฟลเดอร์ย่อยภายใน) เอาหล่ะครับ อย่าเพิ่งถอดใจ ผมมีฟังก์ชั่นดีๆ มาเสนอทุกท่าน&#8230;. ไปดูโค๊ดกันเลย&#8230;.
&#60;?php
function rm($fileglob){
if (is_string($fileglob)) {
if (is_file($fileglob)) {
return unlink($fileglob);
} else if (is_dir($fileglob)) {
$ok = rm(&#8221;$fileglob/*&#8221;);
if (! $ok) {
return false;
}
return rmdir($fileglob);
} else {
$matching = glob($fileglob);
if ($matching === false) {
return false;
}
$rcs = array_map(&#8217;rm&#8217;, $matching);
if (in_array(false, $rcs)) {
return [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติบน ยูนิกส์นั้น การ ลบ ไฟล์หรือโฟลเดอร์สามารถทำได้โดยใช้คอมมานต์</p>
<div class="codesnip-container" >rm -rf {file | folder}</div>
<p>แต่สำหรับการลบ โฟลเดอร์ นั้นอาจจะเป็นเรื่องที่น่าปวดหัวยิ่ง เนื่องจากฟังก์ชั่นในการลบ คือ rmdir นั้น. จะสามารถใช้ได้ก็ต่อเมื่อ โฟลเดอร์นั้นว่าง (ไม่มีไฟล์หรือโฟลเดอร์ย่อยภายใน) เอาหล่ะครับ อย่าเพิ่งถอดใจ ผมมีฟังก์ชั่นดีๆ มาเสนอทุกท่าน&#8230;. ไปดูโค๊ดกันเลย&#8230;.</p>
<div class="codesnip-container" >&lt;?php<br />
function rm($fileglob){<br />
if (is_string($fileglob)) {<br />
if (is_file($fileglob)) {<br />
return unlink($fileglob);<br />
} else if (is_dir($fileglob)) {<br />
$ok = rm(&#8221;$fileglob/*&#8221;);<br />
if (! $ok) {<br />
return false;<br />
}<br />
return rmdir($fileglob);<br />
} else {<br />
$matching = glob($fileglob);<br />
if ($matching === false) {<br />
return false;<br />
}<br />
$rcs = array_map(&#8217;rm&#8217;, $matching);<br />
if (in_array(false, $rcs)) {<br />
return false;<br />
}<br />
}<br />
} else if (is_array($fileglob)) {<br />
$rcs = array_map(&#8217;rm&#8217;, $fileglob);<br />
if (in_array(false, $rcs)) {<br />
return false;<br />
}<br />
} else {<br />
return false;<br />
}<br />
return true;</p>
<p>}</p>
<p>/* &#8212;&#8212;- Start delete folder backup folder in /home/bemore/public_html/quota/temp/ and it&#8217;s not empty!! &#8212;&#8212;*/<br />
rm(&#8217;/home/bemore/public_html/quota/temp/backup&#8217;);</p></div>
<p>จากโค๊ดด้านบนเท่านี้คุณก็สามารถโฟลเดอร์่ที่มี ไฟล์หรือโฟลเดอร์ย่อย ๆ ได้โดยไม่ต้อง Recursive ให้ปวดหัวแล้วครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/06/02/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99-php-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-%e0%b8%a5%e0%b8%9a%e0%b9%82%e0%b8%9f%e0%b8%a5%e0%b9%80/feed/</wfw:commentRss>
		</item>
		<item>
		<title>สมมติว่าต้องการเปลี่ยนชื่อเว็บไซต์แต่ต้องการให้ Ranking ใน Search engine เหมือนเดิม</title>
		<link>http://www.codeans.com/2009/02/24/%e0%b8%aa%e0%b8%a1%e0%b8%a1%e0%b8%95%e0%b8%b4%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99/</link>
		<comments>http://www.codeans.com/2009/02/24/%e0%b8%aa%e0%b8%a1%e0%b8%a1%e0%b8%95%e0%b8%b4%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 04:46:12 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Apache Web Server]]></category>

		<category><![CDATA[Header Location]]></category>

		<category><![CDATA[Meta]]></category>

		<category><![CDATA[Search Engine]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=158</guid>
		<description><![CDATA[ปกติแล้วถ้ามีการเปลี่ยนชื่อ โดเมนเนม เช่นจาก aaa.com เป็น bbb.com
มักจะทำการเปลี่ยนโดยเพิ่ม meta redirect ในส่วนของ HTML header
ซึ่งวิธีการนี้จะ่ส่งผลต่อ ranking ใน search engine อย่างแรงครับ
แต่ก็มีวิธีแก้เสมอครับ คือ search engine แนะนำว่าถ้าจะเปลี่ยนชื่อโดเมน
โดยค่า Ranking ใน search engine เหมือนเดิม สามารถทำได้โดยการ
Redirect header แบบ permanat ครับ วิธีการที่แนะนำสำหรับ webmaster ที่ใช้
PHP &#38; HTML บน Apache web server คือ
1. เขียน PHP SCRIPT (แปะที่หัวไฟล์) ดังนี้
&#60;?
Header( &#8220;HTTP/1.1 301 Moved Permanently&#8221; );
Header( &#8220;Location: http://www.new-url.com&#8221; );
?&#62; 
2. โดยใช้ [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติแล้วถ้ามีการเปลี่ยนชื่อ โดเมนเนม เช่นจาก aaa.com เป็น bbb.com<br />
มักจะทำการเปลี่ยนโดยเพิ่ม meta redirect ในส่วนของ HTML header<br />
ซึ่งวิธีการนี้จะ่ส่งผลต่อ ranking ใน search engine อย่างแรงครับ</p>
<p>แต่ก็มีวิธีแก้เสมอครับ คือ search engine แนะนำว่าถ้าจะเปลี่ยนชื่อโดเมน</p>
<p>โดยค่า Ranking ใน search engine เหมือนเดิม สามารถทำได้โดยการ<br />
Redirect header แบบ permanat ครับ วิธีการที่แนะนำสำหรับ webmaster ที่ใช้<br />
PHP &amp; HTML บน Apache web server คือ</p>
<p>1. เขียน PHP SCRIPT (แปะที่หัวไฟล์) ดังนี้</p>
<div class="codesnip-container" ><span class="defaultfont">&lt;?<br />
Header( &#8220;HTTP/1.1 301 Moved Permanently&#8221; );<br />
Header( &#8220;Location: http://www.new-url.com&#8221; );<br />
?&gt; </span></div>
<p>2. โดยใช้ rewriterule ผ่าน .htaccess ดังนี้</p>
<div class="codesnip-container" >Options +FollowSymLinks<br />
RewriteEngine on<br />
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]</div>
<p>หรือ</p>
<div class="codesnip-container" >Options +FollowSymlinks<br />
RewriteEngine on<br />
rewritecond %{http_host} ^newdomain.com [nc]<br />
rewriterule ^(.*)$ http://www.newdomain.com/$1 [r=301,nc]</div>
<p><strong>* อย่าลืมเปลี่ยนคำว่า newdomain.com เป็นชื่อโดเมนใหม่ของคุณหล่ะ</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/02/24/%e0%b8%aa%e0%b8%a1%e0%b8%a1%e0%b8%95%e0%b8%b4%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ฟังก์ชั่นส่งเมล โดย PHP ส่งได้ทุกภาษา รับได้ทุกเมลเลอร์</title>
		<link>http://www.codeans.com/2009/02/04/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b9%80%e0%b8%a1%e0%b8%a5-%e0%b9%82%e0%b8%94%e0%b8%a2-php-%e0%b8%aa%e0%b9%88%e0%b8%87/</link>
		<comments>http://www.codeans.com/2009/02/04/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b9%80%e0%b8%a1%e0%b8%a5-%e0%b9%82%e0%b8%94%e0%b8%a2-php-%e0%b8%aa%e0%b9%88%e0%b8%87/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 10:41:02 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Charset]]></category>

		<category><![CDATA[Chunk]]></category>

		<category><![CDATA[Content Transfer]]></category>

		<category><![CDATA[Content Type]]></category>

		<category><![CDATA[Hotmail Yahoo]]></category>

		<category><![CDATA[Mail]]></category>

		<category><![CDATA[Moz]]></category>

		<category><![CDATA[Php Email]]></category>

		<category><![CDATA[Php Function]]></category>

		<category><![CDATA[Php Sendmail]]></category>

		<category><![CDATA[Subject Headers]]></category>

		<category><![CDATA[Text Html]]></category>

		<category><![CDATA[Thunderbird]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=154</guid>
		<description><![CDATA[ฟังก์ชั่นนี้ ใช้สำหรับการส่งเมล ซึ่งรองรับทั้งการอ่าน แบบ เท็กซ์ และไฮเปอร์เท็กซ์
โดยใช้ PHP รับรองส่งได้ทุกภาษาไม่ว่าจะเป็น ไทย , ญี่ปุ่น, อังกฤษ, ภาษารัก (อันนี้นอกเรื่อง)
และได้ทดสอบแล้วว่ารับได้กับทุกเมลเลอร์ ไม่ว่าเป็น Gmail, Hotmail, Yahoo, Squirellmail, Outlook, Becky, Moz Thunderbird etc. ผลที่ออกมาตือ เมลไม่มีทางเพี้ยน เพราะเขียนโดยอ้างอิงมาตรฐาน RFC822 ของการส่งเมล ไปดูกันเลย
เริ่ม แรกเขียนฟังก์ชั่นตามนี้

function sendMail&#40;$email, $frommail, $subject, $message, $cType=&#8216;html&#8217;,$CC=&#8220;&#8221;,$BCC=&#8220;&#8221;&#41;&#123;
$subject =&#8220;=?UTF-8?B?&#8221;.base64_encode&#40;$subject&#41;.&#8220;?=&#8221;;
$headers =&#8220;From:&#8221;.$frommail.&#8220;\n&#8220;;
if&#40;$CC!=&#8220;&#8221;&#41;&#123;
$headers .=&#8220;CC: &#8220;.$CC.&#8220;\n&#8220;;
&#125;
if&#40;$BCC !=&#8220;&#8221;&#41;&#123;
$headers .=&#8220;BCC: &#8220;.$BCC.&#8220;\n&#8220;;
&#125;
// Start MIME Boundary
$mime_boundary=&#8220;&#8212;-kaomail&#8212;-&#8221;.md5&#40;time&#40;&#41;&#41;;
$headers .= &#8220;MIME-Version: 1.0\n&#8220;;
$headers .= &#8220;Content-Type: multipart/alternative; boundary=\&#8221;$mime_boundary\&#8221;\n&#8220;;
// text plain [...]]]></description>
			<content:encoded><![CDATA[<p>ฟังก์ชั่นนี้ ใช้สำหรับการส่งเมล ซึ่งรองรับทั้งการอ่าน แบบ เท็กซ์ และไฮเปอร์เท็กซ์<br />
โดยใช้ PHP รับรองส่งได้ทุกภาษาไม่ว่าจะเป็น ไทย , ญี่ปุ่น, อังกฤษ, ภาษารัก (อันนี้นอกเรื่อง)<br />
และได้ทดสอบแล้วว่ารับได้กับทุกเมลเลอร์ ไม่ว่าเป็น Gmail, Hotmail, Yahoo, Squirellmail, Outlook, Becky, Moz Thunderbird etc. ผลที่ออกมาตือ เมลไม่มีทางเพี้ยน เพราะเขียนโดยอ้างอิงมาตรฐาน RFC822 ของการส่งเมล ไปดูกันเลย</p>
<p>เริ่ม แรกเขียนฟังก์ชั่นตามนี้</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">function</span> sendMail<span class="br0">&#40;</span><span class="re0">$email</span>, <span class="re0">$frommail</span>, <span class="re0">$subject</span>, <span class="re0">$message</span>, <span class="re0">$cType</span>=<span class="st0">&#8216;html&#8217;</span>,<span class="re0">$CC</span>=<span class="st0">&#8220;&#8221;</span>,<span class="re0">$BCC</span>=<span class="st0">&#8220;&#8221;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="re0">$subject</span> =<span class="st0">&#8220;=?UTF-8?B?&#8221;</span>.<a href="http://www.php.net/base64_encode"><span class="kw3">base64_encode</span></a><span class="br0">&#40;</span><span class="re0">$subject</span><span class="br0">&#41;</span>.<span class="st0">&#8220;?=&#8221;</span>;<br />
<span class="re0">$headers</span> =<span class="st0">&#8220;From:&#8221;</span>.<span class="re0">$frommail</span>.<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span>;<br />
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$CC</span>!=<span class="st0">&#8220;&#8221;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="re0">$headers</span> .=<span class="st0">&#8220;CC: &#8220;</span>.<span class="re0">$CC</span>.<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$BCC</span> !=<span class="st0">&#8220;&#8221;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="re0">$headers</span> .=<span class="st0">&#8220;BCC: &#8220;</span>.<span class="re0">$BCC</span>.<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="co1">// Start MIME Boundary</span><br />
<span class="re0">$mime_boundary</span>=<span class="st0">&#8220;&#8212;-kaomail&#8212;-&#8221;</span>.<a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><a href="http://www.php.net/time"><span class="kw3">time</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$headers</span> .= <span class="st0">&#8220;MIME-Version: 1.0<span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$headers</span> .= <span class="st0">&#8220;Content-Type: multipart/alternative; boundary=<span class="es0">\&#8221;</span>$mime_boundary<span class="es0">\&#8221;</span><span class="es0">\n</span>&#8220;</span>;</p>
<p><span class="co1">// text plain part</span><br />
<span class="re0">$messages</span> = <span class="st0">&#8220;&#8211;$mime_boundary<span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;Content-Type: text/plain; charset=<span class="es0">\&#8221;</span>utf-8<span class="es0">\&#8221;</span><span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;Content-Transfer-Encoding: base64<span class="es0">\n</span><span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <a href="http://www.php.net/chunk_split"><span class="kw3">chunk_split</span></a><span class="br0">&#40;</span><a href="http://www.php.net/base64_encode"><span class="kw3">base64_encode</span></a><span class="br0">&#40;</span><a href="http://www.php.net/strip_tags"><span class="kw3">strip_tags</span></a><span class="br0">&#40;</span><span class="re0">$message</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="st0">&#8220;<span class="es0">\n</span><span class="es0">\n</span>&#8220;</span>;</p>
<p><span class="co1">// text html part</span><br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;&#8211;$mime_boundary<span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;Content-Type: text/html; charset=<span class="es0">\&#8221;</span>utf-8<span class="es0">\&#8221;</span><span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;Content-Transfer-Encoding: base64<span class="es0">\n</span><span class="es0">\n</span>&#8220;</span>;<br />
<span class="re0">$messages</span> .= <a href="http://www.php.net/chunk_split"><span class="kw3">chunk_split</span></a><span class="br0">&#40;</span><a href="http://www.php.net/base64_encode"><span class="kw3">base64_encode</span></a><span class="br0">&#40;</span><span class="re0">$message</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="st0">&#8220;<span class="es0">\n</span><span class="es0">\n</span>&#8220;</span>;</p>
<p><span class="co1">// End of Boundary</span><br />
<span class="re0">$messages</span> .= <span class="st0">&#8220;&#8211;$mime_boundary&#8211;<span class="es0">\n</span><span class="es0">\n</span>&#8220;</span>;</p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span> &gt; <span class="nu0">0</span> &amp;&amp; <a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="st0">&#8220;@&#8221;</span><span class="br0">&#41;</span> !== <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/mail"><span class="kw3">mail</span></a><span class="br0">&#40;</span><span class="re0">$email</span>, <span class="re0">$subject</span>, <span class="re0">$messages</span> , <span class="re0">$headers</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="kw2">false</span>;<br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="kw2">true</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="kw2">true</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>หลังจากนั้นก็มาถึงการเรียกใช้งาน</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="re0">$email</span> =<span class="st0">&#8220;xx@xxxx.com&#8221;</span>; <span class="co1">// &lt;= อีเมลผู้รับ</span><br />
<span class="re0">$frommail</span> =<span class="st0">&#8220;sender@zzzzz.com&#8221;</span>; <span class="co1">// &lt;= อีเมลผู้ส่ง</span><br />
<span class="re0">$subject</span> = <span class="st0">&#8220;ทดสอบการส่งเมล&#8221;</span>; <span class="co1">//&lt;= หัวข้อเมล</span><br />
<span class="re0">$message</span> =<span class="st0">&#8220;นี่คือเนื้อหาอีเมลที่ส่ง โดยฟังก์ชั่น &lt;a href=&#8217;http://www.codeans.com&#8217;&gt;ฟังก์ชั่นส่งเมล โดย PHP ส่งได้ทุกภาษา รับได้ทุกเมลเลอร์ &lt;/a&gt;&#8221;</span>; <span class="co1">// &lt;= เนื้อหาเมล</span><br />
sendMail<span class="br0">&#40;</span><span class="re0">$email</span>, <span class="re0">$frommail</span>, <span class="re0">$subject</span>, <span class="re0">$message</span><span class="br0">&#41;</span>;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/02/04/%e0%b8%9f%e0%b8%b1%e0%b8%87%e0%b8%81%e0%b9%8c%e0%b8%8a%e0%b8%b1%e0%b9%88%e0%b8%99%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b9%80%e0%b8%a1%e0%b8%a5-%e0%b9%82%e0%b8%94%e0%b8%a2-php-%e0%b8%aa%e0%b9%88%e0%b8%87/feed/</wfw:commentRss>
		</item>
		<item>
		<title>วิธีการรันไฟล์คิวรี่ SQL ขนาดใหญ่ เข้าสู่ฐานข้อมูล MySQL</title>
		<link>http://www.codeans.com/2009/01/22/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%a3%e0%b8%b1%e0%b8%99%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-sql-%e0%b8%82/</link>
		<comments>http://www.codeans.com/2009/01/22/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%a3%e0%b8%b1%e0%b8%99%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-sql-%e0%b8%82/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 04:37:21 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Database]]></category>

		<category><![CDATA[import]]></category>

		<category><![CDATA[Mysql]]></category>

		<category><![CDATA[Phpmyadmin]]></category>

		<category><![CDATA[Sql]]></category>

		<category><![CDATA[Ssh]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=149</guid>
		<description><![CDATA[ปกติ ทุกคนจะเข้าใช้งาน ฐานข้อมูล MySQL ของเว็บโฮสติ้งผ่านทาง phpMyAdmin กันใช่มั้ยครับ แต่ถ้าสมมติว่าท่านต้องการนำเข้าข้อมูลลงฐานข้อมูล ข้อมูลของคุณมีขนาดใหญ่มาก ๆ เช่น 200 MB, แบบนี้วิธีการรันคิวรี่นี้ผ่าน phpMyAdmin คงไปได้ยากแน่นอน เพราะท่านคงติดปัญหา เช่น ข้อจำกัดของเว็บโฮสติ้งในการอัปโหลดไฟล์ที่มีขนาดใหญ่มาก ๆ เป็นต้น
เพราะฉะนั้นเรามาหาวิธีการที่จะนำเข้าข้อมูลนี้กันให้ได้จากทรัพยากรที่เรามีเถอะ มาดู CaseStudy กันครับ
ก่อนอื่น สิ่งที่ท่านจำเป็น(พื้นฐาน) ที่จำเป็นต้องมีคือ

เว็บโฮส์ติ้งที่ติดตั้ง Arpache + MySql
เนื้อที่ต้องเพียงพอที่จะรอบรับไฟล์คิวรี่ได้
บริการ SSH เพื่อรันคอมมานต์ในการนำเข้าข้อมูลไฟล์คิวรี่ (เป็นบริการที่อาจจะต้องขออนุญาติจากเว็บโฮสติ้ง ลองติดต่อกับผู้ให้บรการเว็บโฮสติ้งของท่านครับ)

ขั้นตอนการทำ

ต้องอัปโหลดไฟล์คิวรี่ที่ต้องการนำเข้าไปยัง ฐานข้อมูล MySql โดยผ่านโปรแกรม FTP สมมติว่าอัปโหลดไปยัง ไดเร็คทอรี่และไฟล์คิวรี่ชื่อ /home/codeans/public_html/filearticle2009.sql
เข้าใช้บริการ SSH ผ่านโปรแกรม PUTTY (ดาวน์โหลดและดูตัวอย่างได้ที่นี่) สิ่งที่ท่านต้องใส่คือ HOSTNAME , USERNAME และ PASSWORD ซึ่งเป็นค่าเดียวกับ FTP ที่เว็บโฮสติ้งให้มา หลังจาก ล็อกอินเข้าสู่ระบบเรียบร้อย [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติ ทุกคนจะเข้าใช้งาน ฐานข้อมูล MySQL ของเว็บโฮสติ้งผ่านทาง phpMyAdmin กันใช่มั้ยครับ แต่ถ้าสมมติว่าท่านต้องการนำเข้าข้อมูลลงฐานข้อมูล ข้อมูลของคุณมีขนาดใหญ่มาก ๆ เช่น 200 MB, แบบนี้วิธีการรันคิวรี่นี้ผ่าน phpMyAdmin คงไปได้ยากแน่นอน เพราะท่านคงติดปัญหา เช่น ข้อจำกัดของเว็บโฮสติ้งในการอัปโหลดไฟล์ที่มีขนาดใหญ่มาก ๆ เป็นต้น</p>
<p>เพราะฉะนั้นเรามาหาวิธีการที่จะนำเข้าข้อมูลนี้กันให้ได้จากทรัพยากรที่เรามีเถอะ มาดู CaseStudy กันครับ<br />
ก่อนอื่น สิ่งที่ท่านจำเป็น(พื้นฐาน) ที่จำเป็นต้องมีคือ</p>
<ul>
<li>เว็บโฮส์ติ้งที่ติดตั้ง Arpache + MySql</li>
<li>เนื้อที่ต้องเพียงพอที่จะรอบรับไฟล์คิวรี่ได้</li>
<li>บริการ SSH เพื่อรันคอมมานต์ในการนำเข้าข้อมูลไฟล์คิวรี่ (เป็นบริการที่อาจจะต้องขออนุญาติจากเว็บโฮสติ้ง ลองติดต่อกับผู้ให้บรการเว็บโฮสติ้งของท่านครับ)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>ขั้นตอนการทำ</strong></span></p>
<ul>
<li>ต้องอัปโหลดไฟล์คิวรี่ที่ต้องการนำเข้าไปยัง ฐานข้อมูล MySql โดยผ่านโปรแกรม FTP สมมติว่าอัปโหลดไปยัง ไดเร็คทอรี่และไฟล์คิวรี่ชื่อ /home/codeans/public_html/filearticle2009.sql</li>
<li>เข้าใช้บริการ SSH ผ่านโปรแกรม PUTTY (<a title="วิธีการใช้งาน putty" href="http://www.webmobi.net/index.php?topic=7.0" target="_blank">ดาวน์โหลดและดูตัวอย่างได้ที่นี่</a>) สิ่งที่ท่านต้องใส่คือ HOSTNAME , USERNAME และ PASSWORD ซึ่งเป็นค่าเดียวกับ FTP ที่เว็บโฮสติ้งให้มา หลังจาก ล็อกอินเข้าสู่ระบบเรียบร้อย ก็ใช้คอมมานต์เพื่อไปยังไดเร็คทอรี่ที่เก็บไฟล์คิวรี่ filearticle2009.sql โดยพิมพ์ค่ำสั่ง<br />
cd /home/codeans/public_html/ แล้ว enter</li>
<li>หลังจากนั้นให้ท่านพิมพ์คอมมานต์ เพื่อสั่งให้ MySQL ทำคำสั่งรันคิวรี่โดยไฟล์ ดังนี้</li>
</ul>
<div class="codesnip-container" >mysql -u usr_codeans_article -p db_codeans_article &lt; filearticle2009.sql แล้ว enter ระบบจะถาม password</div>
<p>รายละเอียดของคำสั่งคือ</p>
<ul>
<li>mysql คือคำสั่งเรียกใช้ mysql</li>
<li>-u usr_codeans_article คือการระบุชื่อผู้ใช้ mysql (คือชื่อผู้ใช้ของฐานข้อมูลที่ได้จากเว็บโฮสติ้ง)</li>
<li>-p คือการระบุว่าจะมีการใ่สรหัสผ่าน (คือรหัสผ่านของฐานข้อมูลที่ได้จากเว็บโฮสติ้ง)</li>
<li>คือชื่อฐานข้อมูลที่ต้องการรันคิวรี่</li>
<li>db_codeans_article &lt; filearticle2009.sql คือ การนำเข้าจาก ไฟล์ชื่อ filearticle2009.sql ไปยัง ฐานข้อมูลชื่อ db_codeans_article (ตรงนี้มีข้อพึงระวังนิดนึงคือ พาธของไฟล์คิวรี่ต้องถูกต้อง)</li>
<li>หลังจากนั้นก็รอจนกว่าจะเสร็จ วิธีการตรวจสอบคือ ไปยัง phpMyAdmin ดูข้อมูลว่ามีการนำเข้ามาหรือยัง</li>
</ul>
<blockquote><p>หากเจอปัญหาติดต่อที่อีเมล info@codeans.com<br />
อยากให้คนไทยเขียนเว็บและหาเงินจากอินเตอร์เน็ตและเงินจากต่างประเทศได้.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/01/22/%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%a3%e0%b8%b1%e0%b8%99%e0%b9%84%e0%b8%9f%e0%b8%a5%e0%b9%8c%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-sql-%e0%b8%82/feed/</wfw:commentRss>
		</item>
		<item>
		<title>คิวรี่ เพื่อหารายการข้อมูล จากหลาย ๆ ตารางที่มีข้อมูลต่างกัน</title>
		<link>http://www.codeans.com/2009/01/21/%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b8%b2%e0%b8%a2%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%82%e0%b9%89%e0%b8%ad/</link>
		<comments>http://www.codeans.com/2009/01/21/%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b8%b2%e0%b8%a2%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%82%e0%b9%89%e0%b8%ad/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 10:17:42 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MySQL 5]]></category>

		<category><![CDATA[Data Mining]]></category>

		<category><![CDATA[Data Warehouse]]></category>

		<category><![CDATA[Sql]]></category>

		<category><![CDATA[SQL union]]></category>

		<guid isPermaLink="false">http://www.codeans.com/?p=145</guid>
		<description><![CDATA[คิวรี่ เพื่อหารายการข้อมูล จากหลาย ๆ ตารางที่มีข้อมูลต่างชนิดกัน โดยส่วนใหญ่ มักใช้กันเพื่อการทำ data mining หรือ data warehouse คิวรี่นี้ใช้กับ mysql 5 ครับ
ตัวอย่าง
ตาราง A (product_id, product_name, price_sell)
ตาราง B (item_id, item_name, item_sell)
ถ้าเราต้องเขียนคิวรี่เพื่อทำรีพอร์ทให้ผู้บริหาร เพื่อนำเสนอรายการสินค้าทั้งหมด และมีการแบ่งหน้าด้วย (เพราะเป็นรีพอร์ทผ่านเว็บไซต์) วิธีการคือ การใช้ UNION เข้ามาช่วย ลองดูตัวอย่างเลยครับ

&#40;SELECT product_id, product_name, price_sell AS price FROM A&#41; UNION &#40;SELECT item_id AS product_id, item_name AS product_name, item_sell AS price FROM B&#41;  LIMIT 0, 20

ผลลัทธ์ที่ออกมา [...]]]></description>
			<content:encoded><![CDATA[<p>คิวรี่ เพื่อหารายการข้อมูล จากหลาย ๆ ตารางที่มีข้อมูลต่างชนิดกัน โดยส่วนใหญ่ มักใช้กันเพื่อการทำ data mining หรือ data warehouse คิวรี่นี้ใช้กับ mysql 5 ครับ<br />
<strong>ตัวอย่าง</strong></p>
<p><strong>ตาราง A</strong> (product_id, product_name, price_sell)<br />
<strong>ตาราง B</strong> (item_id, item_name, item_sell)</p>
<p>ถ้าเราต้องเขียนคิวรี่เพื่อทำรีพอร์ทให้ผู้บริหาร เพื่อนำเสนอรายการสินค้าทั้งหมด และมีการแบ่งหน้าด้วย (เพราะเป็นรีพอร์ทผ่านเว็บไซต์) วิธีการคือ การใช้ <strong>UNION</strong> เข้ามาช่วย ลองดูตัวอย่างเลยครับ</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="br0">&#40;</span><span class="kw1">SELECT</span> product_id, product_name, price_sell <span class="kw1">AS</span> price <span class="kw1">FROM</span> A<span class="br0">&#41;</span> UNION <span class="br0">&#40;</span><span class="kw1">SELECT</span> item_id <span class="kw1">AS</span> product_id, item_name <span class="kw1">AS</span> product_name, item_sell <span class="kw1">AS</span> price <span class="kw1">FROM</span> B<span class="br0">&#41;</span>  <span class="kw1">LIMIT</span> <span class="nu0">0</span>, <span class="nu0">20</span></div>
</div>
<p><strong><span style="text-decoration: underline;">ผลลัทธ์ที่ออกมา ก็จะเป็นรายการสินค้าของทั้งสองตาราง จำนวน 20 รายการ</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeans.com/2009/01/21/%e0%b8%84%e0%b8%b4%e0%b8%a7%e0%b8%a3%e0%b8%b5%e0%b9%88-%e0%b9%80%e0%b8%9e%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%ab%e0%b8%b2%e0%b8%a3%e0%b8%b2%e0%b8%a2%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%82%e0%b9%89%e0%b8%ad/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
