คำสั่งเงื่อนไขและการใช้คำสั่งจัดการฐานข้อมูล
เงื่อนไขแบบ if - else if - else คำสั่ง If, elseif และ else เป็นคำสั่งที่ใช้ เปรียบเทียบเงื่อนไขเพื่อเลือกดำเนินการ อย่างใดอย่างหนึ่ง โครงสร้างที่ใช้จะ ขึ้นกับวัตถุประสงค์ บางกรณีสามารถ เขียนได้หลายลักษณะ การทำงานจะเริ่มประมวลผลที่คำสั่ง if ตามด้วย else if และ else ตามลำดับ ถ้าเข้าเงื่อนไขใดก็จำทำงานตามคำสั่งที่ อยู่ในเงื่อนไขนั้น <? $x = 10; if ($x == 0) echo $x," is 0<br>\n"; else if ($x > 0) echo $x," is more than 0<br>\n"; else echo $x," is less than 0<br>\n"; ?>
switch-case <? $answer = “ok”; switch ($answer) { case "yes" : echo “Teacher said 'yes'.\n"; break; case "no" : echo “Teacher said 'no'.\n"; break; default: echo "Teacher said neither 'yes' or 'no'.\n"; } ?> นอกเหนือจากการใช้ if-else ในการ จำแนกกรณีตามเงื่อนไขแล้ว เรายังสามารถใช้โครงสร้างแบบ switch-case ได้ เช่น
while-do loop ไวยากรณ์พื้นฐานของ while loop คือ while (condition) expression ตัวอย่าง while loop แสดงหมายเลข จาก 1 ถึง 5 $num = 0; while ($num <= 5) { echo $num.”<br>”; $num++; } จุดเริ่มต้นของแต่ละรอบ คือ การ ทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จ จะ ไม่มีการประมวลผล และสิ้นสุด loop ประโยคคำสั่งต่อไป หลังจาก loop จะ ได้รับการประมวลผลต่อไป
do - while loop โครงสร้างทั่วไปของประโยคคำสั่ง do while คือ do expression; while (conditon); do…while loop แตกต่างจาก while loop เพราะเงื่อนไขทดสอบตอนท้าย หมายความว่าใน do…while loop ต้องมีการประมวลผลภายใน loop อย่างน้อย 1 ครั้ง ถึงแม้ว่า เงื่อนไขเป็นเท็จ เมื่อเริ่มต้น และไม่มีทางเป็นจริง loop จะได้รับ การประมวลผล 1 ครั้ง ก่อนการตรวจสอบเงื่อนไขและสิ้นสุด
ตัวอย่าง do while loop แสดงเลข 0 ถึง 5 $num = 0; do { echo $num<br>; $num++ ; } while ($num < 6);
for - loop ไวยากรณ์พื้นฐานของ for loop คือ for (expression1; condition ; expression2) expression3; expression1 ประมวลผลเพียงครั้งเดียวเมื่อเริ่มต้นตามปกติใช้ทำค่าเริ่มต้นของตัวนับ condition ทดสอบนิพจน์ ก่อนเริ่มแต่ละรอบ ถ้านิพจน์ส่งออกมีค่าเป็นเท็จ จะเป็นการสิ้นสุดรอบการทำงาน ตามปกติ ใช้ทดสอบตัวนับกับขอบเขต expression2 ประมวลผลตอนท้ายแต่ละรอบ
ตัวอย่าง for loop แสดงเลข 0 ถึง 9 <? for ($x=0 ; $x <10; $x++) { echo $x,"<br>\n"; } ?>
การใช้ break และ continue ภายในลูป คำสั่ง continue บังคับให้ไปเริ่มต้นทำขั้นตอนในการ วนลูปครั้งต่อไป ส่วน break นั้นส่งผลให้ หยุดการทำงานของลูป ตัวอย่าง <? $sum=0; for($i=0;$i<=5;$i++) { $sum = $sum+$i; if($sum != 10) continue; else break; } echo 'sum = '.$sum; ?>
ภาควิชาวิทยาการคอมพิวเตอร์ คระวิทยาศาสตร์ มหาวิทยาลัยบูรพา Function
ฟังก์ชั่น ฟังก์ชั่น ใน php ประกอบด้วย 2 ประเภทคือ 1.ฟังก์ชั่นที่ php ให้มา สามารถเรียกใช้งานได้ทันที 2.ฟังก์ชั่นที่เราสร้างขั้นมาเอง ซึ่งมีวิธีในการเรียกใช้งานฟังก์ชั่น ดังนี้ - ฟังก์ชั่นที่ไม่มีการส่งค่า function_name() - ฟังก์ชั่นที่มีการส่งค่า function_name(argument....)
ตัวอย่าง การสร้างฟังก์ชั่นขึ้นมาใช้งานเอง ตัวอย่าง การสร้างฟังก์ชั่นขึ้นมาใช้งานเอง - ฟังก์ชั่นที่ไม่มีการส่งค่า Sample2.php <html> <body> <? echo"จะแทรกไว้ส่วนบนของ Function ก็ได้"; Test_function(); function Test_function() { echo"Hello Word <br>"; echo"Hello Nutthinee <br>"; echo"Hello PHP Programming<br>"; echo"Hello The Member php<br>"; } echo"<br>หรือจะแทรกใว้ส่วนล่างของ Function ก็ได้"; Test_function(); ?> </body> </html>
ฟังก์ชั่นที่มีการส่งค่า Sample3.php <html> <body> <? function Test_function($a) { return($a * 20 ); } $b=20; echo Test_function($b); ?> </body> </html>
ตัวอย่างฟังก์ชั่นที่ใช้ในทางคณิตศาสตร์ จุดมุ่งหมาย ความหมาย max( ) ต้องการหาค่าสูงสุด min( ) ต้องการหาค่าต่ำสุด pow( ) หาค่าของเลขยกกำลัง Cos( ) หาค่าของ Cosine Atan( ) หาค่า tan Asin( ) หาค่า sine Acos( ) หาค่า arc cosine Abs( ) เมื่องต้องการหาค่าสัมบูรณ์ของจำนวนจริง
ฟังก์ชั่น (ต่อ) รูปแบบการใช้งาน Function(ค่าที่ต้องการหา) เช่น max(2,5,9,1,5,3,4) Log(5) Asin(0.5) deg2rad(60) DecBin(256)
Sample4. php <. echo "<br>ทดสอบหาค่า max(2,5,9,1,5,3,4) = " Sample4.php <? echo "<br>ทดสอบหาค่า max(2,5,9,1,5,3,4) = ".max(2,5,9,1,5,3,4); echo "<br>ทดสอบหาค่า log(5) = ".log(5); echo "<br>ทดสอบหาค่า Asin(0.5) =".Asin(0.5); echo "<br>ทดสอบหาค่า deg2rad(60) = ".deg2rad(60); echo "<br>ทดสอบหาค่า DecBin(256) = ".DecBin(256); ?>
ฟังก์ชั่น (ต่อ) สำหรับฟังก์ชั่นเกี่ยวกับข้อความ PHP รูปแบบการใช้งานก็คล้ายๆ กับภาษา C ฟังก์ชั่น ที่จะสามารถนำไปใช้งานมีดังนี้ strlen() หาความยาวของข้อความ strstr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่ค้นพบจนถึงตัวสุดท้าย strtolower() แปลงข้อความให้เป็นตัวพิมพ์เล็ก strtoupder() แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ strtr() แปลงตัวอักษรที่แน่นอน substr() ตัดตัวอักษรที่ต้องการใช้ออกมา trim() ตัดช่องว่างด้านหน้าและด้านหลังข้อความ stristr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย ทั้งตัวพิมพ์เล็กและพิมพ์ใหญ่
ฟังก์ชั่น จุดมุ่งหมาย ความหมาย strchr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย sprintf() ให้ค่าของข้อความที่มีรูปแบบ prinf() แสดงผลข้อความที่มีรูปแบบ ltrim() ตัดข้อความด้านหน้าข้อความออกไป join() รวม Array เป็นข้อความ implode() explode() แยกข้อความโดยใช้เครื่องหมายแยก echo() แสดงผลข้อความ
Sample8.php เป็นการหาความยาวของข้อความ $text="My Name is Nutthinee Poungvikasirat"; //ภาษาอังกฤษ 35 ตัวอักษร $text.= "ฉันชื่อนางสาวณัฐินี พวงวิกสิตรัตน์"; // ภาษาไทย 35 ตัวอักษร echo"ความยาวเท่ากับ ".strlen($text)." ตัวอักษร แบบไม่แปลงเป็น utf8<br>"; echo "ความยาวเท่ากับ ".mb_strlen($text, ‘utf-8’)." ตัวอักษร แบบแปลงเป็น utf8"; ?> จะเห็นได้ว่าถ้าไม่แปลงเป็น utf8 ภาษาไทย 1 ตัวอักษร จะเท่ากับ 3 ตัวอักษร หลังจากใช้ฟังก์ชั่น strlen() นับตัวอักษรแล้วจึงต้องใช้ฟังก์ชั่น mb_strlen() แทน
Sample9.php เป็นการแสดงข้อความซ้ำหลายรอบ ฟังก์ชั่น (ต่อ) Sample9.php เป็นการแสดงข้อความซ้ำหลายรอบ <? $text="อยากบอกว่าเรียน php กัน "; echo str_repeat($text,3); ?> ผลลัพธ์ที่ได้
ฟังก์ชั่น (ต่อ) Function ทางด้านเวลา ฟังก์ชั่น date() ฟังก์ชั่น date() จะส่งค่าของวันเวลากับมาในรูปแบบของข้อมูลชนิด string ตามรูปแบบที่กำหนด รูปแบบเป็นดังนี้ date(สตริง[,timestamp]) ตัวอักษรต่างๆ จะส่งค่าคืนกลับมาเป็นเวลาที่เรากำหนด ตัวอักษร ผลลัพธ์ที่แสดงออกมา a หน่วยของเวลาแบบตัวพิมพ์เล็ก นั่นคือ "am" หรือ "pm" A หน่วยของเวลาแบบตัวพิมพ์ใหญ่ นั่นคือ "AM" หรือ "PM" d วันที่ โดยมีศูนย์นำหน้า นั่นคือ "01" ถึง "03" D ชื่อวันในสัปดาห์ เฉพาะตัวอักษร 3 ตัวแรก เช่น "Sun","Mon" ฯลฯ F ชื่อเต็มของเดือน เช่น "January" , "Febuary" เป็นต้น
เลขชั่วโมงแบบ 12 ชั่วโมง โดยไม่มีศูนย์นำหน้า นั่นคือ "1" ถึง "12" ฟังก์ชั่น (ต่อ) g เลขชั่วโมงแบบ 12 ชั่วโมง โดยไม่มีศูนย์นำหน้า นั่นคือ "1" ถึง "12" G เลขชั่วโมงแบบ 24 ชั่วโมง โดยไม่มีศูนย์นำหน้า นั่นคือ "0" ถึง "23" h เลขชั่วโมงแบบ 12 ชั่วโมง โดยมีศูนย์นำหน้า นั่นคือ "01" ถึง "23" H เลขชั่วโมงแบบ 24 ชั่วโมง โดยมีศูนย์นำหน้า นั่นคือ "00" ถึง "23" i เลขนาที นั่นคือ "00" ถึง "59" j วันที่ โดยไม่มีศูนย์นำหน้า นั่นคือ "1" ถึง "31" l ชื่อเต็มของวันในสัปดาห์ เช่น "Sunday" , "Monday" เป็นต้น L ค่าตรรกะที่แสดงว่าเดือนกุมภาพันธ์ของปีที่ระบุมี 29 วันหรือไม่ โดย "1" หมายถึง มี 29 วัน , "0" หมายถึงมี 28 วัน m หมายเลขของเดือน โดยมี 0 นำหน้า นั่นคือ "01" ถึง "12" M ชื่อเดือน เฉพาะตัวอักษร 3 ตัวแรก เช่น "Jan" , "Feb" เป็นต้น
หมายเลขของเดือน โดยไม่มีศูนย์นำหน้า นั่นคือ "1" ถึง "12" ฟังก์ชั่น (ต่อ) n หมายเลขของเดือน โดยไม่มีศูนย์นำหน้า นั่นคือ "1" ถึง "12" r วัน/เวลาในรูปของ RFC 822 เช่น "Thu, 21 Dec 2000 21:23:05 +0200" เป็นต้น (php 4.0 ขึ้นไป) s เลขวินาที นั่นคือ "00" ถึง "59" S ตัวหนังสือย่อของเลขวันที่ลงท้ายใน ภาษาอังกฤษ เช่นวันที่ ที่ลงท้ายด้วยเลข1"st" 2 ."rd" เป็นต้น t จำนวนวันของเดือนคือ 28 และ 31 T เขตเวลา (timezone) เช่น "MDT" , "EST" เป็นต้น U จำนวนวินาทีทั้งหมดนับตั้งแต่เวลา 00.00 น. ของวันที่ 1 มกราคม พ.ศ.2513 w หมายเลขของวันในสัปดาห์ นั่นคือ "0" (วันอาทิตย์) ถึง "6" (วันเสาร์) y เลขปีแบบ 2 หลัก เช่น "02" เป็นต้น Y เลขปีแบ 4 หลัก เช่น "2002" เป็นต้น z หมายเลขของวันภายในปี นั่นคือ "0" ถึง "365"
$date = date("วันที่ j เดือนที่ n ปี ค.ศ. Y") ; echo $date ; ?> ตัวอย่าง <?php $date = date("วันที่ j เดือนที่ n ปี ค.ศ. Y") ; echo $date ; ?> ฟังก์ชั่น (ต่อ) ผลลัพธ์ที่ได้ เพื่อนๆลองหัดเปลี่ยนรูปแบบข้อมูลภายในฟังก์ชัน date() ดูว่าจะได้ผลลัพธ์ต่างๆอย่างไรบ้าง
ฟังก์ชั่น (ต่อ) ฟังก์ชั่น getdate() เป็นฟังก์ชั่นที่ใช้แสดงผลของวันเวลาเช่นเดียวกับฟังก์ชั่น date() แต่จะ แตกต่างกันตรงที่ ฟังก์ชั่น getdate() จะส่งค่าของวันหรือเวลามากับ อินเด็กซ์ต่างๆของอาร์เรย์ ซึ่งมีอินเด็กซ์ต่างๆดังนี้
ความหมาย ข้อมูลที่ได้ ฟังก์ชั่น (ต่อ) อินเด็กซ์ ความหมาย ข้อมูลที่ได้ "seconds" เวลาในส่วนของวินาที "minutes" เวลาในส่วนของนาที "hours" เวลาในส่วนของชั่วโมง "mday" วันที่ "wday" วันในสัปดาห์ ตั้งแต่ 0 (วันอาทิตย์) ถึง 6 (วันเสาร์) "mon" หมายเลขเดือน "year" ปี "yday" หมายเลขของวันภายในปี "weekday" ชื่อเต็มของวันในสัปดาห์ "month" ชื่อเต็มของเดือน
echo $day['year']."<br>" ; echo $day['month'] ; ?> ฟังก์ชั่น (ต่อ) ตัวอย่าง <?php $day = getdate(); echo $day['year']."<br>" ; echo $day['month'] ; ?> ผลลัพธ์ที่ได้
ฟังก์ชั่น time() <?php $time = time() ; echo $time ; ?> เป็นฟังก์ชั่นที่ส่ง timestamp ของวัน/เวลาปัจจุบันในเครื่องกลับมาให้ <?php $time = time() ; echo $time ; ?> ฟังก์ชั่น (ต่อ) ผลลัพธ์ที่ได้ ฟังก์ชั่น time() นี้จะให้ค่าเป็นหน่วยของวินาที ซึ่งเราสามารถใช้ฟังก์ชั่นนี้ ให้เป็นประโยชน์ได้ เช่น ไว้สำหรับเช็คการโหวตต่างๆ เช่น โพลสำรวจ
ฟังก์ชั่น (ต่อ) จาก Code ตัวแปร $today จะเป็นอาร์เรย์ที่มีสมาชิก $today[secounds] เก็บค่าวินาที $today[minutes] เก็บค่านาที $today[hours] เก็บค่าชั่วโมง $today[mday] เก็บค่าวันที่ $today[wday] เก็บลำดับของวันใน 1 สัปดาห์ เช่น "0" ถึง "6" $today[weekday] เก็บชื่อวันในสัปดาห์ เช่น "Friday" $today[yday] เก็บลำดับของวันใน 1 ปี คือตั้งแต่ "0" ถึง "365" $today[mon] เก็บค่าเดือน $today[month] เก็บชื่อเดือนแบบเต็ม เช่น "January" $today[year] เก็บค่าปี
PHP กับการติดต่อ MySQL & Form
ฟังก์ชั่นที่สำคัญในการจัดการกับฐานข้อมูล MySQL มีหลายฟังก์ชั่น เช่น การเชื่อมต่อกับ MySQL Server - mysql_connect() จะเชื่อมต่อกับ MySQL Server แบบชั่วคราวจนกว่า สคริปต์จะจบลงหรือ มีการเรียก ตัวอย่างการใช้ $connect = mysql_connect (“localhost”,”username”,”password”); ยกเลิกการเชื่อมต่อ MySQL Server ฟังก์ชั่น mysql_close() ปิดการ เชื่อมต่อกับ MySQL Server ที่ระบุ เป็นอาร์กิวเมนต์ ตัวอย่างการใช้ mysql_close($connect);
แสดงข้อผิดพลาด mysql_error() จะแสดงข้อความที่ผิดพลาดจากการทำงานครั้ง ล่าสุด mysql_errno() จะแสดงหมายเลขข้อผิดพลาดจากการ ทำงานครั้งล่าสุด
ส่งคำสั่ง SQL ไปประมวลผลยังฐานข้อมูล mysql_query() คำสั่งที่ส่งได้ ประกอบด้วย create, insert, select, show, update, delete, drop, describe, explain ตัวอย่างการใช้ $select_db = mysql_query(“select * from test”);
การสร้างฐานข้อมูล mysql_create_db() หรือใช้ mysql_query เรียกคำสั่ง create database ในภาษา SQL ก็ได้ ตัวอย่างการใช้ mysql_create_db(“new_db”); หรือ mysql_query(“create database new_db”) ;
การลบฐานข้อมูล mysql_drop_db() หรือ ใช้ mysql_query() ตัวอย่างการใช้ mysql_drop_db(“new_db”); หรือ mysql_query(“drop database new_db”);
เลือกฐานข้อมูล MySQL Server mysql_select_db() เลือกฐานข้อมูลที่ต้องการใช้ ตัวอย่างการใช้ mysql_select_db(“new_db”);
การเรียกดูข้อมูล เราจะใช้ฟังก์ชั่น mysql_query() เพื่อเรียกใช้คำสั่ง select ในภาษา SQL ตัวอย่างการใช้ $result = mysql_query(“select * from student”);
ฟังก์ชั่น ดึงข้อมูล ฟังก์ชั่น mysql_fetch_rows(), mysql_fetch_array(), mysql_fetch_assoc() 3 ฟังก์ชั่นนี้จะดึงข้อมูลจากคำสั่ง select มาเก็บในรูปของอาร์เรย์ mysql_fetch_row() อ้างอิงข้อมูลในฟิลด์ด้วยตัวเลข mysql_fetch_array() อ้างอิงข้อมูลในฟิลด์ด้วยชื่อฟิลด์ หรือ ตัวเลข mysql_fetch_assoc() อ้างอิงข้อมูลในฟิลด์ด้วยชื่อฟิลด์เท่านั้น ตัวอย่างการใช้ $row = mysql_fetch_row($result);
สร้างฐานข้อมูลและสร้างตาราง <?php $host = "localhost"; $user = "username"; $pass = "password"; $connect = mysql_connect($host,$user,$pass) or die("Connection fail"); echo "Connect success<br>"; $db_name = "new_db"; //ตั้งชื่อฐานข้อมูล mysql_query("create database $db_name") or die("Can't create database"); echo "Create database success<br>";
สร้างฐานข้อมูลและสร้างตาราง (ต่อ) //select database mysql_select_db($db_name) or die("Can't Select database<br>"); $tb_name = "student"; //ตั้งชื่อตาราง //create table $create_tb = mysql_query("create table $tb_name(id char(8) not null, name varchar(30) not null, primary key(id))"); if(!$create_tb){ echo "Can't create table"; exit(); }else echo "Create table success"; mysql_close($connect); ?>