ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก พฤษภาคม, 2013

ขั้นตอนการดาวน์โหลดโปรแกรม Appserv

Appserv เป็นชุดโปรแกรมที่ใช้สำหรับทำให้เครื่องคอมพิวเตอร์ของเราเป็นเว็บเซิร์ฟเวอร์เพื่อทดสอบ และใช้งานโปรแกรมที่เราพัฒนาด้วยภาษา PHP

สร้างฟังก์ชั่น เพื่อลดความซ้ำซ้อนในการเขียนโปรแกรม

เขียนฟังก์ชั่นสำหรับ SELECT / INSERT / UPDATE / DELETE / CANCEL ข้อมูล เพื่อลดความซ้ำซ้อนในการเขียนโปรแกรมด้วยภาษา PHP ปกติแล้วเมื่อเริ่มฝึกเขียนโปรแกรม PHP การจัดการกับข้อมูลต่างๆในฐานข้อมูลนั้น เราจะต้องใช้คำสั่งเดียวกันซ้ำๆ อยู่หลายครั้ง ซึ่งแต่ละครั้งก็จะเปลี่ยนชื่อฟิลด์และตารางที่เก็บข้อมูลให้ตรงกับที่เราต้องการ วิธีการที่รวดเร็วที่สุดคือการคัดลอกซอร์สโค๊ดเดิม แล้วมาดัดแปลงแก้ไข ในบทความก่อนหน้านี้ได้แนะนำเครื่องมือสร้างเองสำหรับช่วยลดเวลาการเขียนโค๊ดให้น้อยลงด้วยวิธีการ  สร้างตัวแปร และโค๊ด SQL สำหรับ INSERT ลงฐานข้อมูล MySQL  จะช่วยให้เราไม่ต้องนั่งพิมพ์ชื่อฟิลด์ให้ยุ่งยากอีกต่อไป แค่คัดลอกมาจากหัวตารางของ phpMyAdmin แล้ววางลงในแบบฟอร์มกดสร้างคำสั่งได้ทันที

สร้างตัวแปร และโค๊ด SQL สำหรับ INSERT ลงฐานข้อมูล MySQL

หลังจากที่นั่งเขียนโปรแกรม PHP กับคำสั่งจัดการฐานข้อมูล INSERT อยู่บ่อยๆ จนสุดท้ายก็ทนกับความจำเจไม่ไหว จึงได้สร้างหน้าแบบฟอร์มสำหรับสร้างคำสั่งบันทึกข้อมูลลงฐานข้อมูลมาใช้เองซะเลย มีบทความหลายที่แนะนำการเก็บคำสั่งที่ใช้งานบ่อยๆ ไว้ในฟังก์ชั่นจะช่วยลดความซ้ำซ้อนในการเขียนโค๊ดเดิมๆได้ แต่ก็ยังมีข้อจำกัดกับบางงานที่อยากจะเขียนสดๆ ไปเลย แบบใช้ครั้งเดียวคือไม่ต้องมีระบบอะไร แบบเขียนสคริปต์เพรียวๆ หน้าเดียวจบ สำหรับใครที่มีฟังก์ชั่น หรือเมธอด พร้อมใช้งานอยู่แล้ว จะนำไปประยุกต์ดูก็ได้นะครับ แค่เปลี่ยนส่วนของเอาท์พุตให้ตรงตามรูปแบบที่ฟังก์ชั่นเราต้องการก็ใช้ได้แล้ว ถึงแม้เราจะมีฟังก์ชั่นไว้ลดความซ้ำซ้อน แต่อย่างหนึ่งที่หลีกเลี่ยงไม่ได้คือ การกำหนดฟิลด์ที่ต้องการบันทึก หรืออัพเดตค่าลงไป ซึ่งถ้ามี 100 ฟิลด์ ก็คงจะหนาวกันเลยทีเดียว คงต้องนั่งพิมพ์ชื่อฟิลด์กันทั้งวัน และด้วยปัญหาตารางเก็บข้อมูลที่มากกว่า 100 ฟิลด์นี่เองจึงเป็นที่มาของการสร้างแบบฟอร์มสร้างคำสั่ง INSERT นี้ขึ้นมา สำหรับใครที่ต้องการทดสอบก็ลองเข้าไปตามลิงค์ที่แปะไว้ด้านล่างนี้เลยนะครับ ดูตัวอย่างได้ที่นี่ Demo http:/

PHP array_chunk() เทคนิคการเขียนโปรแกรมแสดงผล แบบแบ่งหลายคอลัมน์

การเขียนโปรแกรมเพื่อดึงข้อมูลออกมาจากฐานข้อมูล และจัดแสดงผล แบบหลายคอลัมน์นั้น เป็นสิ่งที่เราจะพบเห็นอยู่บ่อยๆ ในเว็บไซต์ที่เป็นร้านค้าออนไลน์ ที่จะนำสินค้ามาแสดงในหน้าแรกเพื่อให้ลูกค้าได้เลือกซื้อกันได้ง่าย และหลายรายการ เพราะแสดงเป็นแถวละรายการ คงจะเปลืองพื้นที่แสดงสินค้าหลายแถว จนหน้าเว็บอาจจะยาวทะลุจอไปเลยก็ได้ สำหรับเทคนิคการแสดงผลแบบแบ่งหลายคอลัมน์นั้น ยังนิยมอย่างมากในการทำแกลอรี่รูปภาพ ซึ่งตัวอย่างที่นำมาให้ดูนี้อาจจะคุ้นตามกันอยู่แล้ว เป็นบทความที่นำมาจากเว็บไซต์ ThaiCreate.Com PHP MySQL Multiple Column จากตัวอย่างกำหนดให้ $intRows นับจำนวนรายการที่ดึงออกมาจากฐานข้อมูล  จะมีคำสั่งที่ใช้ตรวจสอบจำนวนคอลัมน์ว่าครบหรือยังเพื่อขึ้นบรรทัดใหม่โดยตรวจสอบ 24. 25. if (( $intRows )% 2 ==0) 26. { 27. echo "</tr><tr>" ; 28. } ความหมายของคำสั่งนี้ก็คือ ถ้าจำนวนรายการนั้น หาร ด้วย 2 แล้วลงตัว ก็ให้ปิดแถว เพื่อขึ้นแถวใหม่ เราก็จะได้ข้อมูล 2 คอลัมน์เหมือนตัวอย่าง

แปลงวันเวลา datetime <-> timestamp

การแปลงค่าวันที่เพื่อนำไปใช้คำนวณระยะห่าง ระหว่างวันที่นั้นจำเป็นจะต้องจัดรูปแบบใหม่ และเมื่อคำนวณเสร็จแล้ว ก็อาจจะต้องนำกลับมาใช้ใหม่เพื่อแสดงค่าวันที่ที่คำนวณแล้ว โดยพื้นฐานการเปลี่ยนวันที่ date เป็น time และจาก time เป็น date นั้น ใช้หลักการง่ายๆ ดังนี้ หา Timestamp จาก Datetime ในรูปแบบ yyyy-mm-dd H:i:s <?php $datetime = "2013-05-21 02:41:53"; $exp = explode(" ",$datetime); $t = explode(":",$exp[1]); $d = explode("-",$exp[0]); $timestamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]); echo $timestamp; ?> หาวันที่ Datetime จาก Timestamp <?php $timestamp = "1369104113"; echo date("Y-m-d H:i:s", $timestamp); ?> ถ้าหากได้ใช้คำสั่งข้างบนนี้บ่อยๆ เราก็จำเป็นต้องสร้างฟังก์ชั่นไว้ เพื่อสะดวกในการเรียกใช้งาน <?php  function dateToTime($datetime){      $exp = explode(" ",$datetime);      $t = explode(":",$exp[1]);      $d = explode("-",$exp[0]);  

ใช้ฟังก์ชั่น implode() เพื่อลดการเขียนโปรแกรมวนลูปใช้เอง

ในการเขียนโปรแกรมแต่ละครั้ง เวลาที่เราต้องการเชื่อมอาร์เรย์ด้วยค่าบางอย่าง เช่นเครื่องหมายคอมม่า (,) เครื่องหมายขีดคั่น ( | ) หรือเว้นบรรทัด และอื่นๆ เราจะต้องทำการวนลูปโดยเริ่มจากอาร์เรย์ตัวแรก ไปจนถึงอาร์เรย์ตัวสุดท้าย เราก็จะได้ ข้อความที่เชื่อมกันมาใช้งาน เช่น <?php $delimiter = ''; $string = ''; $idArr = array(111, 222, 333, 444); foreach($idArr as $id){     $string .= $delimiter . $id;     $delimiter = '|'; } echo $string; ?> ผลลัพธ์ที่ได้คือ ข้อความที่เชื่อมกันด้วยขีดคั่นกลาง 111|222|333|444 จะเห็นว่าเราต้องเขียนโค๊ดถึง 6 บรรทัดด้วยกัน ซึ่งนับจำนวนตัวอักษรแล้วก็หลายตัวทีเดียว สำหรับการเขียนโปรแกรม php ได้มีฟังก์ชั่นที่พร้อมให้เราเรียกใช้แล้ว ถ้าจำกันได้ผมเคยเขียนบนความเกี่ยวกับสร้างแถวแต่ละแถวของตาราง  html อย่างง่ายด้วยฟังก์ชั่น implode() และครั้งนี้ก็จะนำมาใช้อีกครั้งโดย เปลี่ยนโค๊ด php ที่เราเขียนดังนี้ <?php $idArr = array(111, 222, 333, 444); $string = implode("|", $idArr); echo $string; ?> ด้วยฟังก์ชั่น impl

การแปลงเลขอารบิก เป็นเลขไทย ทั้งแบบ Javascript และ PHP

การแปลงเลขอารบิค เป็นเลขไทย <script type="text/javascript"> //JavaScript Code function thaiNumber(num){ var array = {"1":"๑", "2":"๒", "3":"๓", "4" : "๔", "5" : "๕", "6" : "๖", "7" : "๗", "8" : "๘", "9" : "๙", "0" : "๐"}; var str = num.toString(); for (var val in array) { str = str.split(val).join(array[val]); } return str; } var thaiNum = thaiNumber(12345); alert(thaiNum); </script> <?php //PHP Code $message = "1,256.25"; function toThaiNumber($number){ $numthai = array("๑","๒","๓","๔","๕","๖","๗","๘","๙","๐"); $numarabic = array("1","2","3","4","5","6","7","8&

สร้างตารางเรียน ตารางสอนด้วย PHP

ตัวอย่างการสร้างตารางเรียน ตารางสอน เป็นซอร์สโค๊ดที่ได้จากคำถามในฟอรั่ม PHP ของเว็บไซต์ thaicreate.com ที่ผมเคยตอบเอาไว้ครับ โดยการดึงค่าจากฐานข้อมูลมาเก็บไว้ที่อาร์เรย์ แล้ววนลูปแสดงค่าอาร์เรย์ออกมาเป็นตาราง โดยสามารถปรับแต่งค่าในอาร์เรย์เพื่อให้ตรงต่อความต้องการของแต่ละท่านได้ตามความต้องการครับ รูปตัวอย่างการสร้างตารางเรียน ตารางสอนด้วย PHP <?php $timeArr = array( 0 => array( "start" => "08:30", "stop" => "09:20"), 1 => array( "start" => "09:20", "stop" => "10:10"), 2 => array( "start" => "10:15", "stop" => "11:05"), 3 => array( "start" => "11:05", "stop" => "11:55"), 4 => array( "start" => "11:55", "stop" => "12:45"), 5 => array( "start" => "12:45", "stop" => "13

สร้างรหัสอัตโนมัติ ด้วยฟังก์ชั่น substr()

รหัสอัตโนมัตินี้ จะเป็นรหัสที่ไม่ซ้ำกัน เพื่อใช้อ้างอิงเอกสารแต่ละรายการที่พิมพ์ออกมา ซึ่งอาจจะเป็นรหัสที่ใช้สร้างบาร์โค๊ดด้วย การสร้างตารางเก็บข้อมูลจะมีฟิลด์ที่เป็น Primary Key อยู่สองฟิลด์คือ ฟิลด์ id กับ ฟิลด์ doc_no ฟิลด์ id จะกำหนด type เป็น int(11) และเพิ่มค่าอัตโนมัติ (Auto Increment) ฟิลด์ doc_no จะกำหนดเป็น varchar(11) <?php $code = "A"; $yearMonth = substr(date("Y")+543, -2).date("m"); //query MAX ID //$sql = "SELECT MAX(id) AS last_id FROM my_table"; //$qry = mysql_query($sql) or die(mysql_error()); //$rs = mysql_fetch_assoc($qry); //$maxId = substr($rs['last_id'], -5); //ข้อมูลนี้จะติดรหัสตัวอักษรด้วย ตัดเอาเฉพาะตัวเลขท้ายนะครับ $maxId = 237; //<--- บรรทัดนี้เป็นเลขทดสอบ ตอนใช้จริงให้ ลบ! ออกด้วยนะครับ $maxId = ($maxId + 1); $maxId = substr("00000".$maxId, -5); $nextId = $code.$yearMonth.$maxId; ?> การทำงานของโค๊ด 1. กำหนดอักษรนำหน้า 2. ดึงค่าปี เดือน ปัจจุบัน 3. ดึงค่าไอ

SQL สำหรับตรวจสอบช่วงเวลาที่ว่าง สำหรับระบบจองห้อง ต่างๆ

นอกจากระบบจองห้องประชุมแล้ว น่าจะรวมถึงระบบจอง อื่นๆ ที่มีเรื่องวันที่ และเวลาเข้ามาเกี่ยวข้องด้วย ในรูปจะเป็นการค้นหาช่วงเวลาที่ทับซ้อนกัน สำหรับคำสั่งที่ใช้ตรวจสอบเวลาที่จองห้อง จะเป็นดังนี้ <?php $id = $_POST['room_id']; $bkDate = $_POST['booking_date']; $startTime = $_POST['start_time']; $endTime = $_POST['end_time']; //ค้นหาว่ามีการจอง หรือยัง $sql = "SELECT * FROM tb_booking WHERE bk_room_id = '".$id."' AND bk_date = '".$bkDate."' AND ( (bk_start_time BETWEEN '".$startTime."' AND '".$endTime."') OR (bk_end_time BETWEEN '".$startTime."' AND '".$endTime."') )"; $qry = mysql_query($sql) or die(mysql_error()); if($row = mysql_fetch_array($qry)) { echo "ห้องนี้มีผู้ใช้งาน ช่วงเวลา ". $row['bk_start_time'] ." - ". $row['bk_end_time'] ." กรุณาตรวจสอบอีกครั้ง!"; } ?>