บทที่ 8 สตริงตัวเลข และเวลา 135
w
z
W
F
M
M
n
t
L
Y
y
a
A
g
G
h
H
i
s
O
r
โดยปกติจะใช้ต่อท้ายตัว j หรือ d (ซึ่งใช้แทนวันที่) เช่น jS ลักษณะผลลัพธ์คือ 1st
ใช้แทนลาดับของวันในรอบสัปดาห์จาก 0-6
แทนลาดับของวันในรอบปีจาก 0-365
ลาดับของสัปดาห์ในรอบปี
อักขระที่ใช้แทน “เดือน”
ชื่อเดือนแบบเต็ม เช่น January, March
ลาดับที่ของเดือนในรอบปีโดยมี 0 นาหน้าเลขหลักเดียว เช่น 01, 02, 12
ชื่อของเดือนแบบย่อ เฉพาะ 3 ตัวแรก เช่น Jan, Feb
ลาดับที่ของเดือนแบบไม่มี 0 นาหน้าเลขหลักเดียว เช่น 1, 2, 12
จานวนวันของเดือนนั้นๆ โดยมีค่าระหว่าง 28- 31
อักขระที่ใช้แทน “ปี”
ตรวจสอบว่าเป็นปี Leap Year หรือไม่(เดือนกุมภาพันธ์มี 29 วัน) ถ้าใช่จะคืนค่า 1
ถ้าไม่ใช่จะคืนค่า 0
ใช้แทนปี ค.ศ. แบบเลข 4 หลัก เช่น 1975
ใช้แทนปี ค.ศ. แบบเลข 2 หลัก เช่น 75
อักขระที่ใช้แทน “เวลา”
ใช้แทนค่า Ante Meridiem และ Post Meridiem แบบพิมพ์เล็ก ได้แก่ am หรือ pm
ใช้แทนค่า Ante Meridiem และ Post Meridiem แบบพิมพ์ใหญ่ ได้แก่ AM หรือ PM
ใช้แทนค่าชั่วโมงของวันแบบ 12 ชั่วโมง โดยไม่มี 0 นาหน้าเลขหลักเดียวระหว่าง 0-12
ใช้แทนค่าชั่วโมงของวันแบบ 24 ชั่วโมง โดยไม่มี 0 นาหน้าเลขหลักเดียวระหว่าง 0-23
ใช้แทนค่าชั่วโมงของวันแบบ 12 ชั่วโมง โดยไม่มี 0 นาหน้าเลขหลักเดียวระหว่าง 01-12
ใช้แทนค่าชั่วโมงของวันแบบ 24 ชั่วโมง โดยไม่มี 0 นาหน้าเลขหลักเดียวระหว่าง 00-23
ค่านาทีแบบมี 0 นาหน้าเลขหลักเดียวจาก 00-59
ค่าวินาทีแบบมี 0 นาหน้าเลขหลักเดียวจาก 00-59
ค่าความแตกต่างเมื่อเทียบกับเวลา Greenwich(GMT) เช่น +0700
เวลาตามมาตรฐานของ RFC 2822 เช่น Sun, 1 Mar 2009 15:03:57 +0700
ตัวอย่างที่ 8.25 การแสดงวันที่และเวลาในรูปแบบต่างๆ ด้วยฟังก์ชัน date ( ) แบบที่ 1
<?php
date_default_timezone_set('Asia/Bangkok');
echo "การแสดงวันที่และเวลาในรูปแบบต่างๆ ด้วยฟังก์ชัน date ( ) <br/>";
echo date ("r") . "<br/>";
echo date ('l jS of F Y h:i:s A') . "<br/>";
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
151.
136 บทที่ 8สตริง ตัวเลข และเวลา
echo "July 1, 2012 is on a " . date ("l", mktime(0, 0, 0, 7, 1, 2012)) . "<br/>";
?>
ผลลัพธ์แบบที่ 1
การแสดงวันที่และเวลาในรูปแบบต่างๆ ด้วยฟังก์ชัน date ( )
Mon, 26 Nov 2012 16:36:34 +0700
Monday 26th of November 2012 04:36:34 PM
July 1, 2012 is on a Sunday
ตัวอย่างที่ 8.26 การแสดงวันที่และเวลาในรูปแบบต่างๆ ด้วยฟังก์ชัน date ( ) แบบที่ 2
<?php
date_default_timezone_set('Asia/Bangkok');
$birth = strtotime ("12/10/1978");
echo date ("ข้าพเจ้าเกิดเมื่อ j-m-Y <br />", $birth);
$day = array("อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์");
$month =array("มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน",
"กรกฎาคม", "สิงหาคม" , "กันยายน" , "ตุลาคม" , "พฤศจิกายน" , "ธันวาคม");
$d = date ("w");
$day = $day [$d];
$date = date ("j");
$m = date ("m")-1;
// เพราะลาดับเดือนจะได้คา 1-12
่
$month = $months [$m];
$year = date ('Y') + 543;
echo "วันนีตรงกับวัน $day วันที่ $date เดือน $month ปี $year ";
้
echo date("ขณะนี้เวลา H:i:s");
?>
ผลลัพธ์แบบที่ 2
ข้าพเจ้าเกิดเมื่อ 10-12-1978
วันนี้ตรงกับวัน จันทร์ วันที่ 26 เดือน ปี 2555 ขณะนี้เวลา 16:43:48
ฟังก์ชัน getdate ( )
เป็นฟังก์ชันที่ใช้สาหรับแสดงวันที่และเวลาเช่นเดียวกับฟังก์ชัน date ( ) แต่ไม่สามารถกาหนด
รูปแบบเองได้ และฟังก์ชันจะคืนค่าเป็นอาร์เรย์แบบ Key/Value รูปแบบคาสั่งมีดังนี้
รูปแบบ
array getdate ([ int $timestamp = time() ] )
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
บทที่ 14 ฐานข้อมูลMySQL และการใช้งาน phpMyAdmin 253
ตัวอย่างที่ 14.18 การลบข้อมูลในตารางด้วยคาสั่ง DELETE
mysql>DELETE FROM country WHERE CountryCode = 'JP';
จากตัวอย่างเป็นการลบข้อมูลในตารางด้วยคาสั่ง DELETE ในตาราง "country" โดยมีเงื่อนไข
การลบ คือ คอลัมน์ "CountryCode" จะต้องมีค่าเท่ากับ 'JP' จึงจะลบข้อมูล
การเรียกดูข้อมูลด้วยคาสั่ง SELECT
คาสั่งที่ใช้สาหรับการเรียกดูข้อมูลในตาราง จะใช้คาสั่ง SELECT ซึ่งสามารถระบุเงื่อนไขต่างๆ ได้
การใช้คาสั่ง SELECT สามารถแบ่งตามลักษณะการใช้งาน มีรูปแบบดังนี้
การเรียกดูข้อมูลอย่างง่าย
มีรูปแบบดังนี้
SELECT item FROM tablename;
เมื่อ item
หมายถึง ชื่ อ คอลั ม น์ ที่ ต้ อ งการเรี ย กดู หากมี ห ลายคอลั ม น์ จ ะคั่ น ด้ ว ย
เครื่องหมาย Comma หากต้องการเรียกดูข้อมูลทุกคอลัมน์
สามารถใช้เครื่องหมาย * แทน
tablename หมายถึง ชื่อตาราง
ตัวอย่างข้อมูล (ชื่อตาราง customer)
Customer
Name
Email
Country Budget Used
ID
Code
C001
Parinya Noidonprai parinya@hotmail.com
TH
1000000 600000
C002
John Smith
john.smith@ya.com
EN
2000000 300000
C003
Jame Born
jame.born@test.com
US
3000000 600000
C004
Chalee Angel
chalee@hotmail.com
US
4000000 100000
ตัวอย่างที่ 14.19 การใช้คาสั่งสาหรับเรียกดูข้อมูล
mysql>SELECT CustomerID, Name, Email FROM customer;
ผลลัพธ์ที่ได้จากคาสั่ง
Customer
Name
Email
ID
C001
Parinya Noidonprai
parinya@hotmail.com
C002
John Smith
john.smith@ya.com
C003
Jame Born
jame.born@test.com
C004
Chalee Angel
chalee@hotmail.com
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
269.
254 บทที่ 14ฐานข้อมูล MySQL และการใช้งาน phpMyAdmin
การเรียกดูข้อมูลแบบมีเงื่อนไข
มีรูปแบบดังนี้
SELECT item FROM tablename
[WHERE condition]
[GROUP BY group_type]
[HAVING where_definition]
[ORDER BY order_type]
[LIMIT limit_criteria] ;
เมื่อ condition
หมายถึง เงื่อนไขที่ต้องการกาหนด
group_type
หมายถึง รายชื่อคอลัมน์ที่ใช้ในการกาหนดกลุ่ม
where_definition หมายถึง เงื่อนไขที่ใช้ร่วมกับคาสั่ง GROUP BY
order_type
หมายถึง ชนิดของการเรียงลาดับ
limit_criteria
หมายถึง ตาแหน่งและจานวนแถวที่ต้องการเลือก
หมายเหตุ
WHERE ใช้เรียกดูข้อมูลแบบมีเงื่อนไข เป็นการระบุค่าเฉพาะข้อมูลที่ต้องการเรียกดู อาจใช้
เงื่อนไขเพื่อดึงข้อมูลบางแถวจากตารางก็ได้ โดยภายในคาสั่ง WHERE ประกอบด้วยส่วนสาคัญ
ได้แก่ ชื่อคอลัมน์ ได้แก่ ชื่อคอลัมน์โอเปอร์เรเตอร์ และข้อมูลเฉพาะที่ต้องการแสดงเป็นเงื่อนไข
ของคอลัมน์ที่ระบุ
ตารางที่ 14.7 แสดงโอเปอร์เรเตอร์ที่ใช้งานร่วมกับคาสั่ง WHERE
โอเปอร์เรเตอร์
ชื่อ
ตัวอย่าง
=
เท่ากับ
column = 8000
>
มากกว่า
column > 66.00
<
น้อยกว่า
column < 66.00
>=
มากกว่าหรือเท่ากับ
column >= 66.00
<=
น้อยกว่าหรือเท่ากับ
column <= 66.00
!= หรือ <>
ไม่เท่ากับ
column !=0
IS NULL
ค่าว่าง
column IS NULL
IS NOT NULL ไม่ใช่ค่าว่าง
column IS NOT NULL
BETWEEN
ค่าที่อยู่ระหว่าง
column BETWEEN 0 AND 66.00
IN
ค่าที่อยู่ในคอลัมน์ที่กาหนด
column IN ("mai", "mon")
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
270.
บทที่ 14 ฐานข้อมูลMySQL และการใช้งาน phpMyAdmin 255
ตารางที่ 14.7 (ต่อ)
โอเปอร์เรเตอร์
ชื่อ
ตัวอย่าง
NOT IN
ค่าที่ไม่ได้อยู่ในคอลัมน์ที่กาหนด
column NOT IN ("mai", "mon")
LIKE
เหมือนกับรูปแบบที่กาหนด
column LIKE ("mai%")
NOT LIKE
ไม่เหมือนกับรูปแบบที่กาหนด
column NOT LIKE ("mai%")
REGEXP
Regular Expression
column REGEXP
ตัวอย่างที่ 14.20 การเรียกดูข้อมูลจากตาราง "books" ที่มีค่า cat_id เป็น 1 เท่านั้น
mysql>SELECT * FROM books WHERE cat_id = 1;
ตัวอย่างที่ 14.21 การเรียกดูข้อมูลจากตาราง "books" ที่มีค่า price อยู่ระหว่าง 250 ถึง 340
mysql>SELECT * FROM books WHERE price BETWEEN 250 AND 340;
ตัวอย่างที่ 14.22 การเรียกดูข้อมูลจากตาราง "books" โดยกาหนดเงื่อนไขด้วย LIKE (เฉพาะ
หนังสือที่มีคาว่า PHP)
mysql>SELECT * FROM books WHERE book_title LIKE '%PHP%';
การใช้ GROUP BY เพื่อค้นหาข้อมูลแล้วแยกเป็นกลุ่มตามเงื่อนไขที่กาหนด สามารถใช้ร่วมกับ
ฟังก์ชัน Aggregate เพื่อหาค่าทางสถิติของกลุ่มข้อมูล มีรายละเอียดดังนี้
ตารางที่ 14.8 แสดงฟังก์ชัน Aggregate สาหรับใช้ร่วมกับ GROUP BY
ฟังก์ชัน
คาอธิบาย
AVG (column)
หาค่าเฉลี่ยของคอลัมน์
COUNT (item)
นับจานวนรายการ
MIN (column) / MAX (column)
หาค่าต่าสุด / ค่าสูงสุด ในคอลัมน์
STD (column) / STDDEV (column) หาค่า Standard Deviation (ส่วนเบี่ยงเบนมาตรฐาน) ใน
คอลัมน์
SUM (column)
หาค่าผลรวมของคอลัมน์
ตัวอย่างที่ 14.23 การใช้ GROUP BY และฟังก์ชัน COUNT ( )
mysql>SELECT pub_id, COUNT (book_isbn) FROM books GROUP BY pub_id;
จากตัวอย่างเป็นการใช้คาสั่ง SELECT แสดงคอลัมน์ "pub_id" และใช้ฟังก์ชัน COUNT ( ) นับ
คอลัมน์ "book_isbn" จากนั้นใช้คาสั่ง GROUP BY เพื่อหาค่าของข้อมูลตามกลุ่มของคอลัมน์ "pub_id"
การใช้ HAVING ในการกาหนดกลุ่มให้กับข้อมูลด้วยการใช้คาสั่ง GROUP BY เมื่อต้องการกาหนด
เงื่อนไขเพิ่มเติมเพื่อแบ่งกลุ่มข้อมูล ให้กาหนดเงื่อนไขที่ต้องการนั้นในคาสั่ง HAVING มีตัวอย่างดังนี้
ตัวอย่างที่ 14.24 การใช้ HAVING ในการกาหนดกลุ่มให้กับข้อมูล
mysql> SELECT pub_id, COUNT (book_isbn) FROM books GROUP BY pub_id HAVING pub_id=1;
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
304 บทที่ 16กรณีศึกษา: ระบบจัดการสมาชิก
include "admin_footer.php";
?>
</body>
</html>
ปริญญา น้อยดอนไพร || การเขียนโปรแกรมบนเว็บด้วย PHP ร่วมกับฐานข้อมูล MySQL
320.
บรรณานุกรม
Chris Ullman andLucinda Dykes. (2007). Beginning Ajax. Canada: Wiley Publishing.
Hege Refsnes, Stale Refsnes, Kai Jim Refsnes, and Jan Egil Refsnes with Kelly Dobbs
Henthorne. (2010). Learn JavaScript and AJAX with w3schools. Canada: Wiley
Publishing.
Jay Greenspan and Brad Bulger. (2001). MySQL/PHP Database Applications. Chicago,
New York: IDG Books Worldwide.
Kevin Yank. (2004). Build Your Own Database Driven Website Using PHP and MySQL. 3rd
Edition, United States of America: SitePoint Pty.
Luke Welling and Laura Thomson. (2001). PHP and MySQL Web Development. United
States of America: SAMS.
PHP Manual. (2012). Available at: http://www.php.net. Accessed October 1, 2012.
Shelley Powers. (2007). Adding Ajax. United States of America: O'Reilly Media.
Tim Converse and Joyce Park with Clark Morgan. (2004). PHP5 and MySQL Bible. Canada:
Wiley Publishing.
The phpMyAdmin devel team. (2012). Available at: http://www.phpmyadmin.net
/home_page/docs.php. Accessed December 04, 2012.
W. Jason Gilmore. (2008). Beginning PHP and MySQL: From Novice to Professional,
Third Edition. United States of America: Apress.
กิตติ ภักดีวัฒนะกุล และจันทรขจร แซ่อุ๊น . (2552). PHP, พิมพ์ครั้งที่ 12. กรุงเทพฯ : เคทีพี คอมพ์ แอนด์
คอนซัลท์.
กิติศักดิ์ เจริญโภคานนท์. (2550). คู่มือเรียนเขียนเว็บอีคอมเมิร์ซด้วย PHP 5, พิมพ์ครั้งที่ 2. กรุงเทพฯ:
ซัคเซส มีเดีย.
บัญชา ปะสีละเตสัง. (2553). พัฒนาเว็บแปพลิเคชั่นด้วย PHP ร่วมกับ MySQL และ Dreamweaver.
กรุงเทพฯ: ซีเอ็ดยูเคชั่น.
______________. (2551). พัฒนาเว็บด้วยเทคนิค Ajax และ PHP. กรุงเทพฯ: ซีเอ็ดยูเคชั่น.
ภาควิชาวิศวกรรมคอมพิวเตอร์ . (2553). Introduction to MySQL Database Server. เชียงใหม่:
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่.
สาธิต ชัยวิวัฒน์ตระกูล. (2550). เก่ง PHP ให้ครบสูตร. กรุงเทพฯ: วิตตี้กรุ๊ป.