Your SlideShare is downloading. ×
php5new
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

php5new

4,097
views

Published on

php5new

php5new


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,097
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
89
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP-5 ติดต่อฐานข้อมูล MYSQL
  • 2.
    • MySQL Introduction ทำความรู้จักกับฐานข้อมูล MySQL ( มายเอสคิวแอล ) เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL . แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius. ปัจจุบันบริษัทซันไมโครซิสเต็มส์ ( Sun Microsystems, Inc. ) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของซัน
  • 3.
    • รุ่นของผลิตภัณฑ์ รุ่นของผลิตภัณฑ์นั้นแบ่งออกมาได้สามสายการผลิต ได้แก่ เวอร์ชันใช้ฟรี เวอร์ชันการค้า และเวอร์ชันที่สนับสนุนกับผลิตภัณฑ์ SAP (MAX DB) ความแตกต่างคือเวอร์ชันคอมมิวนิตี้นั้นสามารถนำไปใช้งานได้ฟรีแต่ขาดการสนับ สนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น , เวอร์ชันที่เป็นคอมเมอร์เชียลนั้นให้บริการด้านความสนับสนุนเมื่อมีปัญหา ( ซื้อบริการ ) สรุปคร่าวๆ ประเภทดาต้าเบสให้เลือกใช้ดังนี้ * MySQL เอนเทอร์ไพรส์ Enterprise * MySQL คลัสเตอร์ Cluster * MySQL Embedded * MySQL Community (opensource เวอร์ชัน )
  • 4.
    • ความสามารถที่เพิ่มขึ้น ในเวอร์ชัน 5.0 มีความสามารถหลายอย่างที่สำคัญสำหรับระบบฐานข้อมูลขนาดใหญ่หรือระดับองค์กร (EnterPrise Feature) เช่น Store Procedure, database trigger, database view, database schema ซึ่งได้มีการปรับเพิ่มประสิทธิภาพในส่วนของตารางและการทำดัชนี (index) ขึ้นมาอีก ปัจจุบันเวอร์ชัน community หรือเวอร์ชันที่เสถียร ( stable) 5.0 และเวอร์ชันทดสอบคือ 5.1 beta release และ 5.2 Alpha ตั้งแต่เวอร์ชัน 5.1 เริ่มสนับสนุนการทำ Parttion Database , ตารางเวลาสำหรับเหตุการณ์ต่างๆ ( Event schedule)
  • 5.
    • ประเภทการจัดเก็บข้อมูล ( Database Storage Engine) ที่สนับสนุน
    • * MyISAM ค่าปกติ ( default) * InnoDB สนับสนุนการทำ ทรานแซคชั่น ( transaction) แบบ ACID * Memory การจัดเก็บในหน่วยความจำ ใช้เป็นตารางชั่วคราวเพื่อความรวดเร็ว เนื่องจากเก็บไว้ในหน่วยความจำ ทำให้มีความเร็วในการทำงานสูงมาก * Merge * Archive เหมาะสำหรับการจัดเก็บข้อมูลพวก log file, ข้อมูลที่ไม่ต้องมีการ คิวรี่ ( query) หรือใช้บ่อยๆ เช่น log file เพื่อประโยชน์ในการตรวจสอบย้อนหลัง ( Security Audit Information) * Federated สำหรับการจัดเก็บแบบปลายทาง ( remote server) แทนที่จะเป็นการจัดเก็บแบบ local เหมือนการจัดเก็บ ( Storage) แบบอื่นๆ * NDB สำหรับการจัดเก็บแบบ คลัสเตอร์ ( cluster) * CSV เก็บข้อมูลจาก Text ไฟล์โดยอาศัยเครื่องหมาย คอมมา ( comma) เป็นตัวแบ่งฟิลด์ * Blackhole * Example
  • 6.
    • ชนิดของข้อมูลที่สนับสนุน ชนิดข้อมูลที่ MySQL สนับสนุนแบ่งเป็นสามประเภทหลักใหญ่ๆ
    • ชนิดข้อมูลที่เป็นตัวเลข o BIT ( มีใช้ได้กับ MyISAM, InnoDB, Memory) o TINYINT o SMALLINT o MEDIUMINT o INT o BIGINT
  • 7.
    • * ชนิดข้อมูลที่เกี่ยวกับวันที่และเวลา o DATETIME o DATE o TIMESTAMP o TIME o YEAR
    • ชนิดข้อมูลที่เกี่ยวกับตัวอักษร o CHAR o VARCHAR o BINARY o VARBINARY o BLOB o TEXT o ENUM o SET
  • 8.
    • การใช้งาน MySQL เป็นที่นิยมใช้กันมากสำหรับฐานข้อมูลสำหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB และนิยมใช้งานร่วมกับภาษาโปรแกรม PHP ซึ่งมักจะได้ชื่อว่าเป็นคู่ จะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอนการใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทำงานร่วมกับฐานข้อมูล MySQL ซึ่งรวมถึง ภาษาซี ซีพลัสพลัส ปาสคาล ซีชาร์ป ภาษาจาวา ภาษาเพิร์ล พีเอชพี ไพทอน รูบี และภาษาอื่น ใช้งานผ่าน API สำหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับภาษาอื่น (database connector) เช่น เอเอสพี สามารถเรียกใช้ MySQL ผ่านทาง MyODBC,ADO,ADO.NET เป็นต้น
    • โปรแกรมช่วยในการจัดการฐานข้อมูล และ ทำงานกับฐานข้อมูล ในการจัดการฐานข้อมูล MySQL คุณสามารถใช้โปรแกรมแบบ command-line เพื่อจัดการฐานข้อมูล ( โดยใช้คำสั่ง : mysql และ mysqladmin เป็นต้น ). หรือจะดาวน์โหลดโปรแกรมจัดการฐานข้อมูลแบบ GUI จากเว็บไซต์ของ MySQL ซึ่งคือโปรแกรม : MySQL Administrator และ MySQL Query Browser. เป็นต้น
  • 9.
    • ส่วนเชื่อมต่อกับภาษาการพัฒนาอื่น ( database connector) มีส่วนติดต่อ ( interface) เพื่อเชื่อมต่อกับภาษาในการพัฒนา อื่นๆ เพื่อให้เข้าถึงฟังก์ชันการทำงานกับฐานข้อมูล MySQL ได้เช่น ODBC (Open Database Connector) อันเป็นมาตรฐานกลางที่กำหนดมาเพื่อให้ใช้เป็นสะพานในการเชื่อมต่อกับโปรแกรม หรือระบบอื่นๆ เช่น MyODBC อันเป็นไดรเวอร์เพื่อใช้สำหรับการเชื่อมต่อในระบบปฏิบัติการวินโดว์ , JDBC คลาสส่วนเชื่อมต่อสำหรับ Java เพื่อใช้ในการติดต่อกับ MySQL และมี API (Application Programming Interface) ต่างๆมีให้เลือกใช้มากมายในการที่เข้าถึง MySQL โดยไม่ขึ้นอยู่กับภาษาการพัฒนาใดภาษาหนึ่ง นอกเหนือจาก ตัวเชื่อมต่อกับภาษาอื่น ( Connector) ที่ได้กล่าวมาแล้ว ยังมี API ที่สนับสนุนในขณะนี้คือ * DBI สำหรับการเชื่อมต่อกับ ภาษา perl * Ruby สำหรับการเชื่อมต่อกับ ภาษา ruby * Python สำหรับการเชื่อมต่อกับภาษา python * .NET สำหรับการเชื่อมกับภาษา . NET framework * MySQL++ สำหรับเชื่อมต่อกับภาษา C++ * Ch สำหรับการเชื่อมต่อกับ Ch (C/C++ interpreter) ยังมีโปรแกรมอีกตัว เป็นโปรแกรมบริหารพัฒนาโดยผู้อื่น ซึ่งใช้กันอย่างแพร่หลายและนิยมกันเขียนในภาษาพีเอชพี เป็นโปรแกรมเว็บแอปพลิเคชัน ชื่อ phpMyAdmin
  • 10. MYSQL INSTALLATION ติดตั้ง MYSQL
    • หา MySQL ได้จากไหน ?? MySQL เป็น Software ที่สามารถใช้งานได้ ฟรี โดยหาโหลดได้จากเว็บไซต์ http://www.mysql.com หรือสำหรับผู้ที่เขียน PHP อยู่แล้ว สามารถติดตั้งตัง Appserv ได้เลยครับ Install Appserv (PHP+Apache+MySQL)
    • http://www.thaicreate.com/php/php-install-apache.html หรือหากผู้ที่พัฒนาโปรแกรมด้วยภาษา ASP หรือ ASP.NET แล้วใช้ IIS เป็น Web Server ถ้าหากติดตั้ง Appserv ผมแนะนำให้เปลี่ยน Port ของ Apache ใน Appserv เป็น 81 หรืออย่างอื่นที่ไม่ใช่ 80 เพื่อป้องกันไม่ให้มีผลกระทบกับ IIS และ Apache Web Server หรือจะติดตั้งเฉพาะ MySQL โดยสามารถหาดาวน์โหลดได้จากเว็บไซต์ http://www.mysql.com
  • 11.
    • phpMyAdmin ทำความรู้จัก phpMyAdmin??? phpMyAdmin คืออะไร ? phpMyAdmin เป็นโปรแกรมที่ถูกพัฒนาด้วย PHP ที่ใช้จัดการ MySQL ผ่าน Web Browser โดยสามารถจัดการ MySQL Database เกือบทุกอย่าง เช่นการ Create Database/Table/Field เพิ่ม / ลบ / แก้ไข ข้อมูลหรือโครงสร้างได้ phpMyAdmin หาได้จากไหน ? หากผู้ที่ติดตั้งโปรแกรม Appserv อยู่แล้วสามารถเรียกใช้ phpMyAdmin ได้ทันที http://localhost/phpMyAdmin phpMyAdmin มากับ Package ของ Appserv Appserv & phpMyAdmin
    • http://www.thaicreate.com/php/php-install-apache.html หรือจะหาดาวน์โหลด phpMyAdmin ได้จากเว็บไซต์ Download phpMyAdmin
    • http://www.phpmyadmin.net/
  • 12. หน้าจอของโปรแกรม phpMyAdmin ซึ่งทำงานบน Web Browser
  • 13. หนาจอแสดง Database และ Table
  • 14. หน้าจอแสดง ฟิวส์และจำนวนแถวของข้อมูล ( Field,Record Column )
  • 15. ฐานข้อมูล MYDATABASE Customer Audit Country Fields Type Description CustomerID varchar(4) รหัสลูกค้า (PK) Name varchar(50) ชื่อ Email varchar(50) อีเมล์ CountryCode varchar(2) รหัสประเทศ ( FK ) Budget double งบประมาณ Used double รวมจำนวนเงินที่ใช้ Fields Type Description CountryCode VARCHAR( 2 ) รหัสประเทศ (PK) CountryName VARCHAR(50) ชื่อประเทศ Fields Type Description AuditID int(4) รหัส Audit(PK) CustomerID varchar(4) รหัสลูกค้า (FK) Date date วันที่ Used double จำนวนเงินที่ใช้
  • 16. MYSQL PHPMYADMIN CREATE DATABASE & TABLE เรียนรู้วิธีการสร้าง DATABASE และ TABLE ใน PHPMYADMIN เปิด PHPMYADMIN ด้วย HTTP://LOCALHOST/PHPMYADMIN กรอก User/Password ในการเข้าสู่ phpMyAdmin ปกติจะ Default เป็น root/root
  • 17.
    • หน้าจอของโปรแกรม phpMyAdmin ซึ่งทำงานบน Web Browser
    • การ Create Database
    ใส่ชื่อ Database Name และเลือก Create การ Create Table ใส่ชื่อ Table และจำนวนฟิวส์ที่ต้องการ เลือก Go
  • 18. ระบุชื่อฟิวส์
  • 19. ทดสอบสร้าง TABLE ในที่นี่จะสร้าง TABLE ขึ้นมา 3 TABLE คือ CUSTOMER,COUNTRY,AUDIT ตามรูป TABLE CUSTOMER
  • 20. Table country Table audit
  • 21.
    • ข้อมูลใน Table
    • Rows Customer
    Rows country Rows audit Rows Customer
  • 22. การ EXPORT DATABASE
    • ทำเพื่อนำฐานข้อมูลที่มีอยู่ MySQL ที่สร้างเพื่อนำไปใช้ที่อื่นหรือ Backup เก็บไว้
    เลือกที่ Export
  • 23. เลือกรายการที่ต้องการเพื่อ EXPORT ตาราง เลือกตารางที่ต้องการ เลือกประเภทไฟล์ เลือกรูปแบบที่ต้องการ
  • 24. เลือกส่งออกซึ่งไม่ต้องกำหนดค่าอย่างใดครับ ปกติค่า Default จะกำหนดให้อยู่แล้วครับ แล้วอย่าลืมเลือก Save as file ด้วยน่ะครับ เพราะเราจะส่งออกเป็น . sql เลือก Go เลือก Save ไฟล์ mydatabase.sql ซึ่งเราจะนำไฟล์นี้ไปใช้งานหรือทำการสำรองเก็บไว้
  • 25. การ IMPORT DATABASE หลังจากที่เราได้ .sql มาแล้วขั้นต่อไปก็คือการ Import เข้าสู่ Database ที่ใหม่หรือที่เดิมครับ โดยใน Database ที่ใหม่จะต้องไม่มี Table ที่ได้ทำการ Export ออกตั้งแต่แรก เพราะเราจะทำการ Import เข้าไปใหม่ กรณีที่ต้องการสร้าง Database ใหม่ หรือหากมีอยู่แล้วก็ข้ามขั้นตอนไปได้เลยครับ
  • 26. เลือกที่ Import
  • 27. เลือกไฟล์ . sql ที่ได้ทำการ Export ไว้ครับ และเลือกที่ Go
  • 28. Database ที่ได้ทำการ Import เข้ามา
  • 29. MYSQL RELATION CASCADE ON DELETE/ON UPDATE MySQL Relation CasCade On Delete/On Update ความสามารถของ MySQL ในการทำ Relation ก็สามารถทำได้เช่นเดียวกัน โดยกำหนดชนิดของ Table เป็นแบบ InnoDB โดยสามารถทำการ CasCade DELETE หรือ UPDATE ได้ Syntax InnoDB CREATE TABLE `customer` ( . . . . ) ENGINE=InnoDB;
  • 30.
    • Table : customer
    • CREATE TABLE `customer` ( `CustomerID` varchar(4) NOT NULL, `Name` varchar(50) NOT NULL, `Email` varchar(50) NOT NULL, `CountryCode` varchar(2) NOT NULL, `Budget` double NOT NULL, `Used` double NOT NULL, PRIMARY KEY (`CustomerID`) ) ENGINE=MyISAM ; INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', 'win.weerachai@thaicreate.com', 'TH', 1000000, 600000);
    • INSERT INTO `customer` VALUES ('C002', 'John Smith', 'john.smith@thaicreate.com', 'EN', 2000000, 800000);
    • INSERT INTO `customer` VALUES ('C003', 'Jame Born', 'jame.born@thaicreate.com', 'US', 3000000, 600000);
    • INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', 'chalee.angel@thaicreate.com', 'US', 4000000, 100000);
    • INSERT INTO `customer` VALUES ('C005', 'Weerachai Nukitram', 'webmaster@thaicreate.com', 'TH', 2000000, 100000);
    ดูตัวอย่าง ตัวอย่างได้ทำการสร้าง Table ชื่อ customer และ audit ซึ่งเมื่อมีการลบข้อมูลในตาราง customer ข้อมูลที่อยู่ใน audit จะถูกลบไปด้วย
  • 31.
    • Table : audit
    • CREATE TABLE `audit` ( `AuditID` int(4) NOT NULL, `CustomerID` varchar(4) NOT NULL, `Date` date NOT NULL, `Used` double NOT NULL, PRIMARY KEY (`AuditID`), FOREIGN KEY (CustomerID) REFERENCES customer (CustomerID) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB ; INSERT INTO `audit` VALUES (1, 'C001', '2008-08-01', 100000); INSERT INTO `audit` VALUES (2, 'C001', '2008-08-05', 200000); INSERT INTO `audit` VALUES (3, 'C001', '2008-08-10', 300000); INSERT INTO `audit` VALUES (4, 'C002', '2008-08-02', 400000); INSERT INTO `audit` VALUES (5, 'C002', '2008-08-07', 100000); INSERT INTO `audit` VALUES (6, 'C002', '2008-08-15', 300000); INSERT INTO `audit` VALUES (7, 'C003', '2008-08-20', 400000); INSERT INTO `audit` VALUES (8, 'C003', '2008-08-25', 200000); INSERT INTO `audit` VALUES (9, 'C004', '2008-07-04', 100000); INSERT INTO `audit` VALUES (10, 'C005', '2008-07-04', 200000);
  • 32. เพียงเท่านี้ก็จะได้ Relation 2 ตาราง เมื่อมีการแก้ไขหรือลบข้อมูลใน customer ข้อมูลใน audit จะมีผลในการแก้ไข หรือ ลบเช่นเดียวกัน
  • 33. SQL สำหรับการสร้าง TABLE ชื่อ COUNTRY
    • CREATE TABLE `country` ( `CountryCode` VARCHAR ( 2 ) NOT NULL ,
    • `CountryName` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `CountryCode` )) ENGINE = MYISAM ;
    • INSERT INTO `country` VALUES ('TH', 'Thailand');
    • INSERT INTO `country` VALUES ('EN', 'England');
    • INSERT INTO `country` VALUES ('US', 'United State');
  • 34. MYSQL DATA SOURCE CONFIG (DSN) MySQL DSN Data Source ในภาษา Programming ส่วนใหญ่แล้วจะมี Driver สำหรับไว้ติดต่อกับ MySQL อยู่แล้วครับ แต่ในบางภาษาจะไม่สามารถเรียกใช้งานได้โดยตรง และวิธีที่ใช้กันส่วนมากก็คือการติดต่อผ่าน ODBC ในการเรียกใช้งาน Oracle ผ่าน ODBC จะต้องทำการ Set DSN Name ก่อนครับถึงจะสามารถทำการเรียก Database ใช้งานได้ ดาวโหลด MyODBC Driver ได้ที่ www.mysql.com ในที่นี้ใช้เวอร์ชั่น 5.1 เป็นเวอร์ชั่นล่าสุดหรือดาวน์โหลดจาก URL นี้ได้โดยตรง Download MyODBC 5.1 Driver http://www.thaicreate.com/upload/tutorial/mysql-connector-odbc-5.1.5-win32.zip ตัวอย่างการติดตั้ง MyODBC MyODBC http://www.thaicreate.com/asp/asp-mysql-connect-database.html เริ่มการ Config DSN ไปที่เมนู Start -> Setting -> Control Panel -> Administrative Tools
  • 35. โปรแกรม ODBC เลือกที่ Tab System DSN -> Add วิธีการนี้จะต้องมีการลง MySQL ODBC 5.1 เสียก่อน
  • 36. เลือกที่ MySQL ODBC 5.1 Driver -> Finish
  • 37. กำหนดชื่อ DSN ในที่นี้ผมกำหนดเป็น mydatabase และเลือกฐานข้อมูล mydatabase
  • 38. ทดสอบ Connection คลิกที่ Test และโปรแกรมแสดงสถานะการติดต่อ DSN ที่ได้จากการสร้าง
  • 39. PHP MYSQL CONNECT TO DATABASE PHP MySQL Connect to Database สำหรับการเขียน PHP กับ MySQL นั้นถือเป็นปัจจัยหลักและได้รับความนิยมมากที่สุดในบรรดา Database ทั้งหลายครับ เพราะนอกจากฟรีทั้ง 2 ตัวแล้ว function ต่าง ๆ PHP ได้ออกแบบมาให้ใช้กับ MySQL Database โดยเฉพาะครับ จุดเด่นของ PHP และ MySQL คือ MySQL สามารถทงานได้อย่างรวดเร็ว และค่อนข้างจะเก็บข้อมูลได้หลาย Record mysql_error() Fatal error: Call to undefined function mysql_connect() in C:AppServwwwmyphpphpMySQLConnect.php on line 7
  • 40.
    • ถ้าเกิดข้อผิดพลาดตามที่ยกตัวอย่างให้ให้ทำการดาวน์โหลดตัว extension ชื่อ php_mysql.dll php_mysql.dll
    • http://www.thaicreate.com/php/php_mysql.dll.html
    • ไปไว้ในโฟเดอร์ extension ของ php เช่น C:AppServphp5ext หรือสามารถตรวจสอบ Path ได้ที่ php.ini Start -> Run -> php.ini
    • extension_dir = "C:/AppServphp5ext" . . . . . extension=php_mysql.dll
    • และก็ Restart Apache หรือ Web Server ด้วยน่ะครับ เสร็จแล้วเป็นอันใช้ได้ Syntax
    • $objConnect = mysql_connect ($host,$user,$pass); $host = server,ip,computer-name $user = user $pass = password
  • 41.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot; root &quot;); if($objConnect) { echo &quot;Database Connected.&quot;; } else { echo &quot;Database Connect Failed.&quot;; } mysql_close($objConnect); ?> </body> </html>
    ตัวอย่างการเขียนติดต่อ PHP กับ MySQL phpMySQLConnect.php
  • 42.
  • 43. PHP MYSQL LIST TABLE PROPERTIES ( แสดงชื่อฟิลด์ )
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot; root &quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot; mydatabase &quot;); $strSQL = &quot;SELECT * FROM customer&quot;; $objQuery = mysql_query($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); $intNumField = mysql_num_fields ($objQuery); $i = 0; echo &quot;<b>Table customer have $intNumField Fields.</b><br>&quot;; for($i=1;$i<$intNumField;$i++) { echo $i.&quot;=&quot;. mysql_field_name ($objQuery,$i).&quot; (&quot;.mysql_field_type($objQuery,$i).&quot;)<br>&quot;; } mysql_close($objConnect); ?> </body> </html>
    PHP MySQL List Table Properties ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อแสดงคุณสมบัติของ Table ตัวอย่าง ListField.php
  • 44. Output
  • 45. PHP MYSQL LIST RECORD ( แสดงตาราง )
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot; SELECT * FROM customer&quot;; $objQuery = mysql_query ($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <?
    PHP MySQL List Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อดึงข้อมูลจาก Table มาแสดง ตัวอย่าง ListRecord.php สามารเป็นเป็น Query อื่นๆได้ตามต้องการ เช่น SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id; SELECT * FROM customer inner join country on customer.countrycode= country.countrycode
  • 46.
    • while($objResult = mysql_fetch_array ($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;> <?=$objResult[&quot;CustomerID&quot;];?> </div></td> <td> <?=$objResult[&quot;Name&quot;];?> </td> <td> <?=$objResult[&quot;Email&quot;];?> </td> <td><div align=&quot;center&quot;> <?=$objResult[&quot;CountryCode&quot;];?> </div></td> <td align=&quot;right&quot;> <?=$objResult[&quot;Budget&quot;];?> </td> <td align=&quot;right&quot;> <?=$objResult[&quot;Used&quot;];?> </td> </tr> <? } ?> </table> <? mysql_close($objConnect); ?> </body> </html>
    ListRecord.php ต่อ
  • 47. Output
  • 48. ถ้าเพิ่มเติมการโดยการทำ Link เพื่อเรียงตามตัวอักษรในคอลัมภ์ต่างๆ
    • <html>
    • <head>
    • < / head>
    • <body>
    • <? $objConnect = mysql_connect (&quot; localhost &quot; , &quot; root &quot; , “ root &quot;) or die (&quot; Error Connect to Database &quot;) ;
    • $objDB = mysql_select_db (&quot; mydatabase &quot;) ;
      • IF ( $M ==&quot;&quot;)
      • { $strSQL = &quot; SELECT * FROM customer &quot; ;}
      • elseif ( $M == 1 )
      • { $strSQL = &quot; SELECT * FROM customer order by CustomerID Asc &quot; ;}
      • elseif ( $M == 2 )
      • { $strSQL = &quot; SELECT * FROM customer order by Name Asc &quot; ;}
      • elseif ( $M == 3 )
      • { $strSQL = &quot; SELECT * FROM customer order by Email Asc &quot; ;}
      • elseif ( $M == 4 )
      • { $strSQL = &quot; SELECT * FROM customer order by CountryCode Asc &quot; ;}
      • elseif ( $M == 5 )
      • { $strSQL = &quot; SELECT * FROM customer order by Budget Asc &quot; ;}
      • elseif ( $M == 6 )
      • { $strSQL = &quot; SELECT * FROM customer order by Used Asc &quot; ;}
    • $objQuery = mysql_query ( $strSQL ) or die (&quot; Error Query [&quot;. $strSQL .&quot;]&quot;) ;
    • ?>
    ListSort.php
  • 49.
    • <table width=&quot;800&quot; border=&quot;1&quot;>
    • <tr>
    • <th width=&quot;91&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSort.php?M=1&quot;>CustomerID </a> </div></th>
    • <th width=&quot;100&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSort.php?M=2&quot;>Name</a> </div></th>
    • <th width=&quot;198&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSort.php?M=3&quot;>Email </a> </div></th>
    • <th width=&quot;97&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSortphp?M=4&quot;>CountryCode</a> </div></th>
    • <th width=&quot;59&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSort.php?M=5&quot;>Budget </a> </div></th>
    • <th width=&quot;71&quot;> <div align=&quot;center&quot;>
    • <a href=&quot;ListSort.php?M=6&quot;>Used</a> </div></th>
    • </tr>
    ListSort.php ต่อ
  • 50.
    • <? $i = 0;
    • while ( $objResult = mysql_fetch_array ( $objQuery ))
    • {
      • $i ++ ;
      • if ( $i%2 == 0 )
      • {
      • echo &quot; <tr bgcolor = #FFFF99> &quot; ;
      • }else{
      • echo &quot; <tr bgcolor = #FFCCCC> &quot; ;
      • }?>
      • <td><div align =&quot; center &quot; ><? = $objResult [&quot; CustomerID &quot;] ;?>< / div>< / td>
      • <td><? = $objResult [&quot; Name &quot;] ;?>< / td>
      • <td><? = $objResult [&quot; Email &quot;] ;?>< / td>
      • <td><div align =&quot; center &quot; ><? = $objResult [&quot; CountryCode &quot;] ;?>< / div>< / td>
      • <td align =&quot; right &quot; ><? = $objResult [&quot; Budget &quot;] ;?>< / td>
      • <td align =&quot; right &quot; ><? = $objResult [&quot; Used &quot;] ;?>< / td>
    • < / tr>
    • <? } ?>
    • < / table>
    • <? mysql_close ( $objConnect ) ; ?>
    • < / body>
    • < / html>
    ListSort.php ต่อ
  • 51. Output
  • 52. PHP MYSQL RANDOM RECORD สุ่มรายการเพื่อแสดง
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot;SELECT * FROM customer ORDER BY RAND() LIMIT 2 &quot;; $objQuery = mysql_query ($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <?
    ตัวอย่าง RandomRecord.php
  • 53.
    • while($objResult = mysql_fetch_array ($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td> </tr> <? } ?> </table> <? mysql_close($objConnect); ?> </body> </html>
    RandomRecord.php ต่อ
  • 54. Output
  • 55. PHP MYSQL LIST RECORD PAGING แสดงรายการเป็นหน้า
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot; SELECT * FROM customer &quot;; $objQuery = mysql_query ($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); $Num_Rows = mysql_num_rows ($objQuery); $Per_Page = 2; // Per Page $Page = $_GET[&quot;Page&quot;]; if(!$_GET[&quot;Page&quot;]) { $ Page =1; }
    PHP MySQL List Record Paging ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อดึงข้อมูลจาก Table มาแสดงและมีการแบ่งการแสดงผลเป็นหน้า ListRecordPaging.php
  • 56.
    • $Prev_Page = $Page-1; $Next_Page = $Page+1; $Page_Start = (($Per_Page*$Page)-$Per_Page); if($Num_Rows<=$Per_Page) { $Num_Pages =1; } else if(($Num_Rows % $Per_Page)==0) { $Num_Pages =($Num_Rows/$Per_Page) ; } else { $Num_Pages =($Num_Rows/$Per_Page)+1; $Num_Pages = (int)$Num_Pages; } $strSQL .=&quot; order by CustomerID ASC LIMIT $Page_Start , $Per_Page &quot;; $objQuery = mysql_query($strSQL); ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <?
    ListRecordPaging.php ต่อ
  • 57.
    • while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td> </tr> <? } ?> </table> <br> Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page : <? if($Prev_Page) { echo &quot; <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> &quot;; }
  • 58.
    • for($i=1; $i<=$Num_Pages; $i++){ if($i != $Page) { echo &quot;[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]&quot;; } else { echo &quot;<b> $i </b>&quot;; } } if($Page!=$Num_Pages) { echo &quot; <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> &quot;; } mysql_close($objConnect); ?> </body> </html>
  • 59. Output
  • 60. PHP MYSQL SEARCH RECORD ค้นหารายการ
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form name=&quot;frmSearch&quot; method=&quot;get&quot; action=&quot;<?=$_SERVER['SCRIPT_NAME'];?>&quot;> <table width=&quot;599&quot; border=&quot;1&quot;> <tr> <th>Keyword <input name=&quot;txtKeyword&quot; type=&quot;text&quot; id=&quot;txtKeyword&quot; value=&quot;<?=$_GET[&quot;txtKeyword&quot;];?>&quot;> <input type=&quot;submit&quot; value=&quot; Search &quot;></th> </tr> </table> </form> <?
    PHP MySQL Search Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อค้นหาข้อมูลจาก Table ตัวอย่าง SearchRecord.php
  • 61.
    • if($_GET[&quot;txtKeyword&quot;] != &quot;&quot;) { $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); // Search By Name or Email $strSQL = &quot;SELECT * FROM customer WHERE (Name LIKE '%&quot;.$_GET[&quot;txtKeyword&quot;].&quot;%' or Email LIKE '%&quot;.$_GET[&quot;txtKeyword&quot;].&quot;%' )&quot;; $objQuery = mysql_query ($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <?
    SearchRecord.php ต่อ
  • 62.
    • while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td> </tr> <? } ?> </table> <? mysql_close($objConnect); } ?> </body> </html>
    SearchRecord.php ต่อ
  • 63. Output
  • 64. PHP MYSQL SEARCH RECORD PAGING ค้นหาแสดงเป็นหน้า
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form name=&quot;frmSearch&quot; method=&quot;get&quot; action=&quot;<?=$_SERVER['SCRIPT_NAME'];?>&quot;> <table width=&quot;599&quot; border=&quot;1&quot;> <tr> <th>Keyword <input name=&quot;txtKeyword&quot; type=&quot;text&quot; id=&quot;txtKeyword&quot; value=&quot;<?=$_GET[&quot;txtKeyword&quot;];?>&quot;> <input type=&quot;submit&quot; value=&quot; Search &quot;></th> </tr> </table> </form> <?
    PHP MySQL Search Record Paging ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อค้นหาข้อมูลจาก Table มาแสดงและมีการแบ่งการแสดงผลเป็นหน้า ตัวอย่าง SearchRecordPaging.php
  • 65.
    • if($_GET[&quot;txtKeyword&quot;] != &quot;&quot;) { $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); // Search By Name or Email $strSQL = &quot;SELECT * FROM customer WHERE (Name LIKE '%&quot;.$_GET[&quot;txtKeyword&quot;].&quot;%' or Email LIKE '%&quot;.$_GET[&quot;txtKeyword&quot;].&quot;%')&quot;; $objQuery = mysql_query($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); $Num_Rows = mysql_num_rows($objQuery); $Per_Page = 2; // Per Page $Page = $_GET[&quot;Page&quot;]; if(!$_GET[&quot;Page&quot;]) { $Page=1; } $Prev_Page = $Page-1; $Next_Page = $Page+1;
    SearchRecordPaging.php ต่อ
  • 66.
    • $Page_Start = (($Per_Page*$Page)-$Per_Page); if($Num_Rows<=$Per_Page) { $Num_Pages =1; } else if(($Num_Rows % $Per_Page)==0) { $Num_Pages =($Num_Rows/$Per_Page) ; } else { $Num_Pages =($Num_Rows/$Per_Page)+1; $Num_Pages = (int)$Num_Pages; } $strSQL .=&quot; order by CustomerID ASC LIMIT $Page_Start , $Per_Page&quot;; $objQuery = mysql_query($strSQL);
    • ?> <table width=&quot;600&quot; border=&quot;1&quot;>
    SearchRecordPaging.php ต่อ
  • 67.
    • <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <? while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td> </tr> <? } ?>
    SearchRecordPaging.php ต่อ
  • 68.
    • </table> <br> Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page : <? if($Prev_Page) { echo &quot; <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]'><< Back</a> &quot;; } for($i=1; $i<=$Num_Pages; $i++){ if($i != $Page) { echo &quot;[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]&quot;; } else { echo &quot;<b> $i </b>&quot;; } } if($Page!=$Num_Pages) { echo &quot; <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&txtKeyword=$_GET[txtKeyword]'>Next>></a> &quot;; } mysql_close($objConnect); } ?> </body> </html>
    SearchRecordPaging.php ต่อ
  • 69. Output
  • 70. PHP MYSQL ADD/INSERT RECORD การเพิ่มข้อมูล
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form action =&quot;AddSave.php&quot; name=&quot;frmAdd&quot; method=&quot;post&quot;> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;160&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th>
    PHP MySQL Add/Insert Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อเพิ่มข้อมูลลงใน Table ตัวอย่าง AddForm.php
  • 71.
    • <th width=&quot;70&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <tr> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCustomerID&quot; size=&quot;5&quot;></div></td> <td><input type=&quot;text&quot; name=&quot;txtName&quot; size=&quot;20&quot;></td> <td><input type=&quot;text&quot; name=&quot;txtEmail&quot; size=&quot;20&quot;></td> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCountryCode&quot; size=&quot;2&quot;></div></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtBudget&quot; size=&quot;5&quot;></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtUsed&quot; size=&quot;5&quot;></td> </tr> </table> <input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;submit&quot;> </form> </body> </html>
    AddForm.php ต่อ
  • 72. Output
  • 73.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot; INSERT INTO customer &quot;; $strSQL .=&quot;(CustomerID,Name,Email,CountryCode,Budget,Used) &quot;; $strSQL .=&quot;VALUES &quot;; $strSQL .=&quot;('&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;','&quot;.$_POST[&quot;txtName&quot;].&quot;','&quot;.$_POST[&quot;txtEmail&quot;].&quot;' &quot;; $strSQL .=&quot;,'&quot;.$_POST[&quot;txtCountryCode&quot;].&quot;','&quot;.$_POST[&quot;txtBudget&quot;].&quot;','&quot;.$_POST[&quot;txtUsed&quot;].&quot;') &quot;; $objQuery = mysql_query($strSQL); if($objQuery) { echo &quot;Save Done.&quot;; } else { echo &quot;Error Save [&quot;.$strSQL.&quot;]&quot;; } mysql_close($objConnect); ?> </body> </html>
    AddSave.php
  • 74. Output
  • 75. PHP MYSQL CHECK ALREADY EXIST ADD/INSERT RECORD การตรวจข้อมูลซ้ำก่อนเพิ่ม
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form action=&quot; CheckExistRecordAddSave.php&quot; name=&quot;frmAdd&quot; method=&quot;post&quot;> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;160&quot;> <div align=&quot;center&quot;>Name </div></th>
    PHP MySQL Check Already Exist Add/Insert Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL ตรวจสอบข้อมูลก่อนเพิ่มข้อมูลลงใน Table ตัวอย่าง CheckExistRecordAddForm.php
  • 76.
    • <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <tr> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCustomerID&quot; size=&quot;5&quot;></div></td> <td><input type=&quot;text&quot; name=&quot;txtName&quot; size=&quot;20&quot;></td> <td><input type=&quot;text&quot; name=&quot;txtEmail&quot; size=&quot;20&quot;></td> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCountryCode&quot; size=&quot;2&quot;></div></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtBudget&quot; size=&quot;5&quot;></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtUsed&quot; size=&quot;5&quot;></td> </tr> </table> <input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;submit&quot;> </form> </body> </html>
    CheckExistRecordAddForm.php ต่อ
  • 77. Output
  • 78.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot;SELECT * FROM customer WHERE CustomerID = '&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;' &quot;; $objQuery = mysql_query($strSQL); $objResult = mysql_fetch_array($objQuery); if($objResult) { echo &quot;CustomerID already exist.&quot;; } else {
    CheckExistRecordAddSave.php
  • 79.
    • $strSQL = &quot;&quot;; $strSQL = &quot; INSERT INTO customer &quot;; $strSQL .=&quot;(CustomerID,Name,Email,CountryCode,Budget,Used) &quot;; $strSQL .=&quot;VALUES &quot;; $strSQL .=&quot;('&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;','&quot;.$_POST[&quot;txtName&quot;].&quot;','&quot;.$_POST[&quot;txtEmail&quot;].&quot;' &quot;; $strSQL .=&quot;,'&quot;.$_POST[&quot;txtCountryCode&quot;].&quot;','&quot;.$_POST[&quot;txtBudget&quot;].&quot;','&quot;.$_POST[&quot;txtUsed&quot;].&quot;') &quot;; $objQuery = mysql_query($strSQL); if($objQuery) { echo &quot;Save Done.&quot;; } else { echo &quot;Error Save [&quot;.$strSQL.&quot;]&quot;; } } mysql_close($objConnect); ?> </body> </html>
    CheckExistRecordAddSave.php ต่อ
  • 80. Output
  • 81. PHP MYSQL EDIT/UPDATE RECORD แก้ไขข้อมูล
    • PHP MySQL Edit/Update Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อแก้ไขข้อมูลลงใน Table
    EditRecordList.php EditRecordForm.php EditRecordSave.php บันทึกลงฐานข้อมูล xxx xxx xxx Form แก้ไข ดึงข้อมูลที่เลือกมาแก้ไข xxx xxx แก้ไข xxx xxx แก้ไข
  • 82. ตัวอย่าง
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot;SELECT * FROM customer&quot;;
    • $objQuery = mysql_query($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); ?> <table width=&quot;600&quot; border=&quot;1&quot;>
    EditRecordList.php
  • 83.
    • <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> <th width=&quot;30&quot;> <div align=&quot;center&quot;>Edit </div></th> </tr> <? while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td>
    EditRecordList.php ต่อ
  • 84.
    • <td align=&quot;center&quot;><a href=&quot;EditRecordForm.php?CusID=<?=$objResult[&quot;CustomerID&quot;];?>&quot;>Edit</a></td> </tr> <? } ?> </table> <? mysql_close($objConnect); ?> </body> </html>
    EditRecordList.php ต่อ
  • 85. Output คลิกไปที่ไฟล์ EditRecordForm.php ตาม ID ที่ชี้อยู่
  • 86.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form action =&quot;EditRecordSave.php?CusID=<?=$_GET[&quot;CusID&quot;];?> &quot; name=&quot;frmEdit&quot; method=&quot;post&quot;> <? $objConnect = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $strSQL = &quot;SELECT * FROM customer WHERE CustomerID = '&quot;.$_GET[&quot;CusID&quot;].&quot;' &quot;; $objDB = mysql_select_db(&quot;mydatabase&quot;); $objQuery = mysql_query($strSQL); $objResult = mysql_fetch_array($objQuery); if(!$objResult) { echo &quot;Not found CustomerID=&quot;.$_GET[&quot;CusID&quot;]; } else { ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;160&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Budget </div></th>
    EditRecordForm.php
  • 87.
    • <th width=&quot;70&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <tr> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCustomerID&quot; size=&quot;5&quot; value=&quot;<?=$objResult[&quot;CustomerID&quot;];?>&quot;></div></td> <td><input type=&quot;text&quot; name=&quot;txtName&quot; size=&quot;20&quot; value=&quot;<?=$objResult[&quot;Name&quot;];?>&quot;></td> <td><input type=&quot;text&quot; name=&quot;txtEmail&quot; size=&quot;20&quot; value=&quot;<?=$objResult[&quot;Email&quot;];?>&quot;></td> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCountryCode&quot; size=&quot;2&quot; value=&quot;<?=$objResult[&quot;CountryCode&quot;];?>&quot;></div></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtBudget&quot; size=&quot;5&quot; value=&quot;<?=$objResult[&quot;Budget&quot;];?>&quot;></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtUsed&quot; size=&quot;5&quot; value=&quot;<?=$objResult[&quot;Used&quot;];?>&quot;></td > </tr> </table> <input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;submit&quot;> <? } mysql_close($objConnect); ?> </form> </body> </html>
    EditRecordForm.php ต่อ
  • 88. OUTPUT
  • 89.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot;UPDATE customer SET &quot;; $strSQL .=&quot;CustomerID = '&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;' &quot;; $strSQL .=&quot;,Name = '&quot;.$_POST[&quot;txtName&quot;].&quot;' &quot;; $strSQL .=&quot;,Email = '&quot;.$_POST[&quot;txtEmail&quot;].&quot;' &quot;; $strSQL .=&quot;,CountryCode = '&quot;.$_POST[&quot;txtCountryCode&quot;].&quot;' &quot;; $strSQL .=&quot;,Budget = '&quot;.$_POST[&quot;txtBudget&quot;].&quot;' &quot;; $strSQL .=&quot;,Used = '&quot;.$_POST[&quot;txtUsed&quot;].&quot;' &quot;; $strSQL .=&quot;WHERE CustomerID = '&quot;.$_GET[&quot;CusID&quot;].&quot;' &quot;; $objQuery = mysql_query($strSQL); if($objQuery) { echo &quot;Save Done.&quot;; } else { echo &quot;Error Save [&quot;.$strSQL.&quot;]&quot;; } mysql_close($objConnect); ?> </body> </html>
    EditRecordSave.php
  • 90. PHP MYSQL DELETE RECORD การลบข้อมูล
    • PHP MySQL Delete Record ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL เพื่อลบข้อมูลใน Table
    DeleteRecordList.php <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot;SELECT * FROM customer&quot;; $objQuery = mysql_query($strSQL) or die (&quot;Error Query [&quot;.$strSQL.&quot;]&quot;); ?> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;98&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;59&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;71&quot;> <div align=&quot;center&quot;>Used </div></th> <th width=&quot;30&quot;> <div align=&quot;center&quot;>Delete </div></th> </tr>
  • 91.
    • <? while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align=&quot;center&quot;><?=$objResult[&quot;CustomerID&quot;];?></div></td> <td><?=$objResult[&quot;Name&quot;];?></td> <td><?=$objResult[&quot;Email&quot;];?></td> <td><div align=&quot;center&quot;><?=$objResult[&quot;CountryCode&quot;];?></div></td> <td align=&quot;right&quot;><?=$objResult[&quot;Budget&quot;];?></td> <td align=&quot;right&quot;><?=$objResult[&quot;Used&quot;];?></td> <td align=&quot;center&quot;>
    • <a href=&quot;DeleteRecord.php?CusID=<?=$objResult[&quot;CustomerID&quot;];?>&quot;> Delete</a>
    • </td> </tr> <? } ?> </table> <? mysql_close($objConnect); ?> </body> </html>
    DeleteRecordList.php ต่อ
  • 92. OUTPUT คลิกไปที่ไฟล์ DeleteRecord.php ตาม ID ที่ชี้อยู่
  • 93.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect (&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); $strSQL = &quot; DELETE FROM customer &quot;; $strSQL .=&quot;WHERE CustomerID = '&quot;.$_GET[&quot;CusID&quot;].&quot;' &quot;; $objQuery = mysql_query($strSQL); if($objQuery) { echo &quot;Record Deleted.&quot;; } else { echo &quot;Error Delete [&quot;.$strSQL.&quot;]&quot;; } mysql_close($objConnect); ?> </body> </html>
    DeleteRecord.php
  • 94.
    • PHP MySQL Transaction (Begin,Commit,Rollback) ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP กับ MySQL ใช้งาน Transaction ในการตรวจสอบ ความถูกต้อง ก่อนการทำการ บันทึกข้อมูล จริง หลักการคือ เมื่อมีการ Begin แล้ว ภายใต้คำสั่งที่อยู่ในเงื่อนไนนี้จะมีการตรวจสอบว่ามีการทำงานถูกต้อง หรือมีข้อผิดพลาดหรือไม่ ถ้าไม่มีข้อผิดพลาดก็จะทำการ Commit หรือถ้ามีข้อผิดพลาดโปรแกรมจะทำการ Rollback คือยกเลิกข้อมูลที่ได้ทำการกระทำในแต่แรก
    Syntax //*** Start Transaction ***// mysql_query(&quot;BEGIN&quot;); //*** Commit Transaction ***// mysql_query(&quot;COMMIT&quot;) //*** RollBack Tranasction ***// mysql_query(&quot;ROLLBACK&quot;) ในการใช้งาน Transaction จะต้องกำหนดชนิดของ Table เป็นแบบ InnoDB InnoDB Syntax CREATE TABLE `customer` ( . . . . ) ENGINE=InnoDB;
  • 95. กรณีมีข้อผิดพลาด MYSQL SAID: DOCUMENTATION
    • #1289 - The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working
    • ให้ทำการเปิดไฟล์ my.ini (C:AppServMySQLmy.ini)
    • skip-innodb แก้เป็น #skip-innodb ### Restart MySQL Service ###
  • 96.
    • ตัวอย่าง ตัวอย่างนี้จะเป็นการเพิ่มข้อมูล ได้สมมุติการเพิ่มข้อมูลซ้ำ ซึ่งมี Primary Key ชื่อ CustomerID ซึ่งจะสามารถเพิ่มข้อมูลสำเร็จใน Statement แรก และ Statement ที่ 2 จะไม่สามารถเพิ่มข้อมูลได้ และเมื่อมีการ RollBack ข้อมูล Statement แรกที่ถูก Insert ไปแล้วก็จะถูกยกเลิกในทันที สำหรับการใช้ Transaction สามารถใช้ได้ทั้งการ Insert/Update/Delete Record
  • 97.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <form action=&quot;TransactionAddSave.php&quot; name=&quot;frmAdd&quot; method=&quot;post&quot;> <table width=&quot;600&quot; border=&quot;1&quot;> <tr> <th width=&quot;91&quot;> <div align=&quot;center&quot;>CustomerID </div></th> <th width=&quot;160&quot;> <div align=&quot;center&quot;>Name </div></th> <th width=&quot;198&quot;> <div align=&quot;center&quot;>Email </div></th> <th width=&quot;97&quot;> <div align=&quot;center&quot;>CountryCode </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Budget </div></th> <th width=&quot;70&quot;> <div align=&quot;center&quot;>Used </div></th> </tr> <tr> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCustomerID&quot; size=&quot;5&quot;></div></td> <td><input type=&quot;text&quot; name=&quot;txtName&quot; size=&quot;20&quot;></td> <td><input type=&quot;text&quot; name=&quot;txtEmail&quot; size=&quot;20&quot;></td> <td><div align=&quot;center&quot;><input type=&quot;text&quot; name=&quot;txtCountryCode&quot; size=&quot;2&quot;></div></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtBudget&quot; size=&quot;5&quot;></td> <td align=&quot;right&quot;><input type=&quot;text&quot; name=&quot;txtUsed&quot; size=&quot;5&quot;></td> </tr> </table> <input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;submit&quot;> </form> </body> </html>
    TransactionAddForm.php
  • 98. OUTPUT
  • 99.
    • <html> <head> <title>iamsanya.com</title> </head> <body> <? $objConnect = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&quot;Error Connect to Database&quot;); $objDB = mysql_select_db(&quot;mydatabase&quot;); //*** Start Transaction ***// mysql_query(&quot; BEGIN &quot;); //*** Query 1 ***// $strSQL = &quot;INSERT INTO customer &quot;; $strSQL .=&quot;(CustomerID,Name,Email,CountryCode,Budget,Used) &quot;; $strSQL .=&quot;VALUES &quot;; $strSQL .=&quot;('&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;','&quot;.$_POST[&quot;txtName&quot;].&quot;','&quot;.$_POST[&quot;txtEmail&quot;].&quot;' &quot;; $strSQL .=&quot;,'&quot;.$_POST[&quot;txtCountryCode&quot;].&quot;','&quot;.$_POST[&quot;txtBudget&quot;].&quot;','&quot;.$_POST[&quot;txtUsed&quot;].&quot;') &quot;; $objQuery1 = mysql_query($strSQL);
    TransactionAddSave.php
  • 100.
    • $strSQL = &quot;INSERT INTO customer &quot;; $strSQL .=&quot;(CustomerID,Name,Email,CountryCode,Budget,Used) &quot;; $strSQL .=&quot;VALUES &quot;; $strSQL .=&quot;('&quot;.$_POST[&quot;txtCustomerID&quot;].&quot;','&quot;.$_POST[&quot;txtName&quot;].&quot;','&quot;.$_POST[&quot;txtEmail&quot;].&quot;' &quot;; $strSQL .=&quot;,'&quot;.$_POST[&quot;txtCountryCode&quot;].&quot;','&quot;.$_POST[&quot;txtBudget&quot;].&quot;','&quot;.$_POST[&quot;txtUsed&quot;].&quot;') &quot;; $objQuery2 = mysql_query($strSQL); if(($objQuery1) and ($objQuery2)) { //*** Commit Transaction ***// mysql_query(&quot; COMMIT &quot;); echo &quot;Save Done.&quot;; } else { //*** RollBack Transaction ***// mysql_query(&quot; ROLLBACK &quot;); echo &quot;Error Save [&quot;.$strSQL.&quot;]&quot;; } mysql_close($objConnect); ?> </body> </html>
    TransactionAddSave.php ต่อ Error Message Error Save [INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) VALUES ('C005','Weerachai Nukitram','webmaster@thaicreate.com' ,'TH','2000000','100000') ]
  • 101.
    • ใช้เพื่อเชื่อมความสัมพันธ์ระหว่างคีย์ของตาราง parent ไปยังคีย์ตาราง child เช่น ขอยกตัวอย่างการสร้างความสัมพันธ์ระหว่่างตาราง parent และตาราง child ที่มี foreign key ฟิลด์เดียว CREATE TABLE parent (id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child (id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;
    • เราอาจเคยได้ยินคำว่า Referential integrity เป็นกฏที่ใช้ในการควบคุมการเชื่อมโยงระหว่างตาราง มีประโยช์เวลาเราลบข้อมูลแล้วต้องมีการตามไปลบแถวข้อมูลหรือลบข้อมูลใน attribute ที่มี Foreign Key อ้างอิงถึงข้อมูลนั้นในอีก Relation หนึ่งด้วย หากเราสร้าง Foreign Key เอาไว้ เราสามารถทำ Referential integrity ได้โดยตั้ง Cascading UPDATES และ DELETES โดยจะมี Option ดังนี้
    • Reference option > RESTRICT | CASCADE | SET NULL | NO ACTION RESTRICT : การไม่อนุญาตให้ลบแถวข้อมูลหรือลบข้อมูลใน attribute ที่มีการอ้างอิง ถึงข้อมูลนั้นในอีก Relation หนึ่ง CASCADE : การตามไปลบแถวข้อมูลหรือลบข้อมูลใน attribute ที่มี Foreign Key อ้างอิงถึงข้อมูลนั้นในอีก Relation หนึ่งด้วย SET NULL : ต้องกําหนดให้ข้อมูลใน attribute ที่เป๊น Foreign Key เปนค่าว่างจึงจะสามารถลบแถวข้อมูลหรือลบ / แก้ไขข้อมูลใน Attribute นั้นได้ NO ACTION : ไม่ต้องทำอะไรเลย