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

บทความ

กำลังแสดงโพสต์จาก เมษายน, 2013

คำสั่ง SQL ค้นหารายชื่อลูกค้าที่ค้างชำระเงินในแต่ละเดือน

SELECT tb_customer.customer_id, tb_customer.customer_name, tb_payment.payment_date FROM tb_customer LEFT JOIN tb_payment ON tb_customer.customer_id = tb_payment.payment_customer_id AND tb_payment.payment_date LIKE '2013-04%' WHERE tb_payment.payment_date IS NULL การนำไปใช้งาน ให้ค้นหาตามค่าเดือนปีที่ส่งมาจากฟอร์มค้นหา <?php $sql = "SELECT tb_customer.customer_id, tb_customer.customer_name, tb_payment.payment_date "; $sql.= "FROM tb_customer "; $sql.= "LEFT JOIN tb_payment ON tb_customer.customer_id = tb_payment.payment_customer_id AND tb_payment.payment_date LIKE '". $_POST['year_month'] ."%'"; $sql.= "WHERE tb_payment.payment_date IS NULL"; $result = mysql_query($sql) or die(mysql_error()); while($rs = mysql_fetch_assoc($result)){ //CODE HERE... } ?>

ตรวจสอบโครงสร้างฐานข้อมูล MySQL ด้วย PHP

หลายครั้งที่อัพเดตเวอร์ชั่น มักจะลืมแก้ไขบางฟิลด์ หรือหากเวอร์ชั่นใหม่ ต้องแก้ฟิลด์จำนวนมาก จะเสียเวลามานั่งไล่แก้โครงสร้างตามที่บันทึกไว้ ครั้นจะใช้โครงสร้างใหม่ แล้ว dump ข้อมูลเดิมใส่ ก็ทำได้ยาก เพราะทำผ่านเน็ตจะช้ามากๆ กรณีข้อมูลเป็น GB จะนั่งรอกันเป็นวัน ^^" ด้วยเหตุนี้เลยนั่งเขียนสคริปต์ PHP ที่ใช้อัพเดตโครงสร้างฐานข้อมูลขึ้นมาใช้งาน ไหนๆ ก็ต้องนั่งรอ dump ข้อมูลใหม่ หรือนั่งไล่แก้ทีละฟิลด์อยู่แล้ว

การเขียน PHP เชื่อมต่อฐานข้อมูล MySQL

        สำหรับบทความนี้จะพูดถึงการเขียน PHP เพื่อเชื่อมต่อฐานข้อมูลแบบง่ายๆ ด้วยหลักการพื้นฐานเขียนทีละบรรทัด ทีละฟังก์ชั่นเพื่อให้เข้าถึงข้อมูลในฐานข้อมูล MySQL ได้ ตัวอย่างการใช้งานจริง PHP กับการเชื่อมต่อฐานข้อมูล MySQL

จัดระเบียบซอร์สโค๊ด PHP ลดการ query ฐานข้อมูล MySQL ให้น้อยลง

การเขียนโปรแกรมด้วยภาษา php เป็นภาษาที่ยืดหยุ่น และผมถนัดที่สุด เพราะเราสามารถออกแบบการทำงานได้ง่ายกว่าภาษาอื่น ที่ผมเขียนเป็น เรื่องตัวแปรก็ยืดหยุ่น เรียกใช้ง่าย บทความนี้จะนำเสนอเทคนิคการเขียนโปรแกรม ที่ช่วยลดจำนวนครั้งในการคิวรี่ฐานข้อมูลน้อยลง เพื่อเป็นการลดภาระของฐานข้อมูล MySQL ให้ใช้ CPU น้อยลง แต่ก็ต้องแรก กับหน่วยความจำของโปรแกรมสักหน่อย เช่นถ้าใช้กับตารางที่เก็บข้อมูลหลักหมื่นเรคอร์ด ก็อาจจะเกิดอาการตัวแปรมีขนาดใหญ่เกินไป ซึ่งจะต้องใช้ memory_limit เพิ่มขึ้นไปอีก กรณีที่ต้องแสดงข้อมูลหลายเรคอร์ดเรามักจะเจอ fatal error “Allowed memory size exhausted” ข้อความนี้อยู่เป็นประจำ จึงเป็นเหตุผลให้เราต้องแบ่งหน้าการแสดงผล เพื่อให้แสดงผลเร็วขึ้น และไม่ใช้หน่วยความจำเกินขีดจำกัด ขั้นการเขียนโปรแกรมที่จะช่วยลดจำนวนการคิวรี่ MySQL คือ 1. ตัดส่วนที่ต้องคิวรี่เพื่อดึงข้อมูลในลูปออกมาไว้นอกลูป      วิธีนี้จะสามารถใช้ได้กับ ตารางข้อมูลที่ข้อมูลตายตัว หรือมีการเพิ่มข้อมูลไม่บ่อย และจะไม่เกินหลักพัน ประมาณนี้ 2. สร้างอาร์เรย์เก็บข้อมูลของตารางที่ต้องคิวรี่ในลูปนี้ เอาไว้เรียก

การแทนที่อักขระพิเศษให้เป็นค่าว่าง ด้วย preg_replace

ตัวอย่างนี้จะเป็นการลบอักษระพิเศษออกจากชุดข้อความที่กำหนด ผลลัพธ์ที่ต้องการคือข้อความที่มีเฉพาะตัวอักษร a-z กับเลข 0-9 เท่านั้น <?php $data = "asd'$%#&-1-2-3"; $data = preg_replace("/[^a-z\d]/i", '', $data); echo $data; ?> ผลลัพธ์ asd123 PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม สนใจสั่งซื้อเพียง  4,500  บาท http://fastcoding.phpcodemania.com/ สนับสนุนค่ากาแฟผู้เขียนได้ที่

OOP คืออะไร

OOP =  Object oriented programming แล้ว PHP OOP คืออะไร หาอ่านได้จากในเว็บครับส่วนตัวแล้วก็ยังเข้าใจไม่ถ่องแท้  จึงได้เปิดหมวดหมู่ใหม่เพิ่มขึ้นมา เพื่อลองเล่นกับ OOP ดูสักตั้ง ในความคิดของผมนั้น การเขียนเป็น Class ไม่ได้ต่างจากเขียนเป็น Function แต่เสน่ห์อย่างหนึ่งของการเรียกใช้งาน Class ก็คือ การส่งค่าเข้าไปในฟังก์ชั่นได้สะดวก และสามารถส่งค่าได้หลายค่าโดยที่ไม่ทำให้โค๊ดยาว จนต้องสร้างเป็นอาร์เรย์แล้วส่งไปในฟังก์ชั่นเหมือนทุกครั้ง การสร้าง Class ขึ้นมาใช้งานก็คงเหมือนกับการจับ Function มารวมไว้ในถุงเดียวกัน เป็นการแพ็กรวมฟังก์ชั่นนั่นเอง เวลาเรียกใช้ก็อ้างถึงแพ็กเกจที่ต้องการก่อน แล้วค่อยหยิบ Function ออกมาใช้ ส่วนประกอบหลักของ OOP มีดังนี้ Class  => ชื่อแพ็กเกจ Property => พารามิเตอร์ ที่ส่งเข้า  Function ปกติ Method => ชื่อ Function ปกติ แล้ว OOP มันดียังไง???? ผมก็ยังสงสัยอยู่ครับ พยายามหาเหตุผลว่าทำไมต้อง OOP เหมือนกับจะหาคำอธิบายได้แต่ก็โดนฟังก์ชั่นธรรมดาหักล้างทุกที ปัจจุยหลักคงจะเป็นเพราะผมไม่ได้จับงานระบบใหญ่ๆ เลยเข้าไม่ถึง OOP แต่แล้ววันหนึ่ง ก็เ