|
PHP กับ MySQLi การสร้าง JSON จาก MySQL Database ด้วยฟังก์ชั่น (function) ของ mysqli |
PHP กับ MySQLi การสร้าง JSON จาก MySQL Database ด้วยฟังก์ชั่น (function) ของ mysqli บทความนี้เป็นการอัพเดด Code ในการเข้ารหัส JSON จาก MySQL Database ด้วยฟังก์ชั่น (function) ของ mysqli ซึ่งเป็นชุดคำสั่งล่าสุดที่ทาง php แนะนำให้ใช้ในการติดต่อกับ Database ของ MySQL ส่วนคำสั่งในการเข้ารหัสเรายังคงใช้ json_encode() และกรณีจะ Decode ก็สามารถใช้ json_decode() ได้ แต่ถ้านำไปใช้งานกับ Application อื่น ๆ ด้วยการรับส่งผ่าน API ไปยัง Application ประเภท Android, iOS , Windows Phone ก็จะต้องใช้ชุดคำสั่งของภาษานั้น ๆ (Native) ในการที่จะ Decode ค่าตัวแปร JSON แล้วค่อยนำไปใช้งาน
PHP และ JSON กับ Web Service การรับส่งข้อมูลจาก MySQL ในรูปแบบของ JSON
jQuery Ajax กับ JSON ทำความเข้าใจ การรับส่งข้อมูล JSON ผ่าน jQuery กับ Ajax
ก่อนอ่านบทความนี้ควรอ่าน 3 บทความนี้ก่อน
head]ฐานข้อมูลฝั่ง Server[/head]
01. CREATE TABLE IF NOT EXISTS `customer` (
02. `CustomerID` varchar (4) NOT NULL ,
03. ` Name ` varchar (50) NOT NULL ,
04. `Email` varchar (50) NOT NULL ,
05. `CountryCode` varchar (2) NOT NULL ,
06. `Budget` decimal (18,2) NOT NULL ,
07. `Used` decimal (18,2) NOT NULL
08. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
09.
10.
11.
12.
13.
14. INSERT INTO `customer` (`CustomerID`, ` Name `, `Email`, `CountryCode`, `Budget`, `Used`) VALUES
15. ( 'C001' , 'Win Weerachai' , 'win.weerachai@thaicreate.com' , 'TH' , '1000000.00' , '600000.00' ),
16. ( 'C002' , 'John Smith' , 'john.smith@thaicreate.com' , 'UK' , '2000000.00' , '800000.00' ),
17. ( 'C003' , 'Jame Born' , 'jame.born@thaicreate.com' , 'US' , '3000000.00' , '600000.00' ),
18. ( 'C004' , 'Chalee Angel' , 'chalee.angel@thaicreate.com' , 'US' , '4000000.00' , '100000.00' );
นำคำสั่ง SQL นี้ไปสร้าง Database ในฝั่งของ Web Service Server

เมื่อสร้างเสร็จจะได้โครงสร้างและข้อมูลดังรูป
Example 1 การสร้าง JSON ในรูปแบบของข้อมูลหลาย Rows หรือ Array หลายมิติ
01. <?php
02. ini_set ( 'display_errors' , 1);
03. error_reporting (~0);
04.
05. $serverName = "localhost" ;
06. $userName = "root" ;
07. $userPassword = "root" ;
08. $dbName = "mydatabase" ;
09.
10. $conn = mysqli_connect( $serverName , $userName , $userPassword , $dbName );
11. $sql = "SELECT * FROM customer" ;
12. $query = mysqli_query( $conn , $sql );
13. if (! $query ) {
14. printf( "Error: %s\n" , $conn ->error);
15. exit ();
16. }
17. $resultArray = array ();
18. while ( $result = mysqli_fetch_array( $query ,MYSQLI_ASSOC))
19. {
20. array_push ( $resultArray , $result );
21. }
22. mysqli_close( $conn );
23.
24. echo json_encode( $resultArray );
25. ?>
Result
[
{"CustomerID":"C001","Name":"Win Weerachai","Email":"win.weerachai@thaicreate.com","CountryCode":"TH","Budget":"1000000.00","Used":"600000.00"}
,{"CustomerID":"C002","Name":"John Smith","Email":"john.smith@thaicreate.com","CountryCode":"UK","Budget":"2000000.00","Used":"800000.00"}
,{"CustomerID":"C003","Name":"Jame Born","Email":"jame.born@thaicreate.com","CountryCode":"US","Budget":"3000000.00","Used":"600000.00"}
,{"CustomerID":"C004","Name":"Chalee Angel","Email":"chalee.angel@thaicreate.com","CountryCode":"US","Budget":"4000000.00","Used":"100000.00"}
]
จาก Result ดังกล่าวในกรณีที่ฝั่งที่เรียกใช้สามารถใช้ json_decode() ได้ดังนี้
01. <?php
02. ini_set ( 'display_errors' , 1);
03. error_reporting (~0);
04.
05. function createJSON()
06. {
07. $serverName = "localhost" ;
08. $userName = "root" ;
09. $userPassword = "root" ;
10. $dbName = "mydatabase" ;
11.
12. $conn = mysqli_connect( $serverName , $userName , $userPassword , $dbName );
13. $sql = "SELECT * FROM customer" ;
14. $query = mysqli_query( $conn , $sql );
15. if (! $query ) {
16. printf( "Error: %s\n" , $conn ->error);
17. exit ();
18. }
19. $resultArray = array ();
20. while ( $result = mysqli_fetch_array( $query ,MYSQLI_ASSOC))
21. {
22. array_push ( $resultArray , $result );
23. }
24. mysqli_close( $conn );
25.
26. return json_encode( $resultArray );
27. }
28.
29.
30. $jsonCode = createJSON();
31. $jsonDecode = json_decode( $jsonCode , true);
32.
33. foreach ( $jsonDecode as $result )
34. {
35. echo $result [ 'CustomerID' ]. " " ;
36. echo $result [ 'Name' ]. " " ;
37. echo $result [ 'Email' ]. " " ;
38. echo $result [ 'CountryCode' ]. " " ;
39. echo $result [ 'Budget' ]. " " ;
40. echo $result [ 'Used' ]. " " ;
41. echo "<br>" ;
42. }
43. ?>
Result
C001 Win Weerachai win.weerachai@thaicreate.com TH 1000000.00 600000.00
C002 John Smith john.smith@thaicreate.com UK 2000000.00 800000.00
C003 Jame Born jame.born@thaicreate.com US 3000000.00 600000.00
C004 Chalee Angel chalee.angel@thaicreate.com US 4000000.00 100000.00
Example 2 การสร้าง JSON ในรูปแบบของข้อมูล Rows เดียวหรือชุดเดียว
01. <?php
02. ini_set ( 'display_errors' , 1);
03. error_reporting (~0);
04.
05. $serverName = "localhost" ;
06. $userName = "root" ;
07. $userPassword = "root" ;
08. $dbName = "mydatabase" ;
09.
10. $strCustomerID = "C001" ;
11.
12. $conn = mysqli_connect( $serverName , $userName , $userPassword , $dbName );
13. $sql = "SELECT * FROM customer WHERE CustomerID = '$strCustomerID' " ;
14. $query = mysqli_query( $conn , $sql );
15. if (! $query ) {
16. printf( "Error: %s\n" , $conn ->error);
17. exit ();
18. }
19. $result = mysqli_fetch_array( $query ,MYSQLI_ASSOC);
20. mysqli_close( $conn );
21.
22. echo json_encode( $result );
23. ?>
Result
{"CustomerID":"C001","Name":"Win Weerachai","Email":"win.weerachai@thaicreate.com","CountryCode":"TH","Budget":"1000000.00","Used":"600000.00"}
จาก Result จะเห็นว่าจะไม่มีเครื่องหมาย [ ] ครอบชุดของ JSON และฝั่งที่เรียกใช้สามารถใช้ json_decode() ได้ดังนี้
01. <?php
02. ini_set ( 'display_errors' , 1);
03. error_reporting (~0);
04.
05. function createJSON()
06. {
07. $serverName = "localhost" ;
08. $userName = "root" ;
09. $userPassword = "root" ;
10. $dbName = "mydatabase" ;
11.
12. $strCustomerID = "C001" ;
13.
14. $conn = mysqli_connect( $serverName , $userName , $userPassword , $dbName );
15. $sql = "SELECT * FROM customer WHERE CustomerID = '$strCustomerID' " ;
16. $query = mysqli_query( $conn , $sql );
17. if (! $query ) {
18. printf( "Error: %s\n" , $conn ->error);
19. exit ();
20. }
21. $result = mysqli_fetch_array( $query ,MYSQLI_ASSOC);
22. mysqli_close( $conn );
23.
24. return json_encode( $result );
25. }
26.
27.
28. $jsonCode = createJSON();
29. $jsonDecode = json_decode( $jsonCode , true);
30.
31. echo $jsonDecode [ 'CustomerID' ]. "<br/>" ;
32. echo $jsonDecode [ 'Name' ]. "<br/>" ;
33. echo $jsonDecode [ 'Email' ]. "<br/>" ;
34. echo $jsonDecode [ 'CountryCode' ]. "<br/>" ;
35. echo $jsonDecode [ 'Budget' ]. "<br/>" ;
36. echo $jsonDecode [ 'Used' ]. "<br/>" ;
37. ?>
Result
C001
Win Weerachai
win.weerachai@thaicreate.com
TH
1000000.00
600000.00
สรุป
ในตัวอย่างนี้จะเป็นเพียงการสร้าง JSON ด้วย PHP และเรียกใช้งานในหน้าเว็บเดียวกัน แต่ในกรณีที่ต้องการเรียกหรือรับ-ส่งค่าผ่าน API อื่น ๆ เช่น Ajax , Web Services หรือพัฒนาร่วมกับ Application ประเภท Smartphone (Android, iOS, Windows Phone) ก็จะสามารถนำ JSON นี้ไปใช้ได้เช่นเดียวกัน ส่วนวิธีการ Decode หรือ Parser นั้นก็ขึ้นอยู่กับ Application ในฝั่งที่รับข้อความ JSON แล้วเอาไปใช้งาน
บทความอื่น ๆ ที่เกี่ยวข้อง
Go to : jQuery Ajax กับ JSON ทำความเข้าใจ การรับส่งข้อมูล JSON ผ่าน jQuery กับ Ajax
Go to : วิธีการสร้าง PHP กับ Web Service และ Return Array ไปยัง Client ด้วย NuSoap
Go to : PHP - Web Service กับ MySQL Database รับส่งค่า Result ผ่านเว็บเซอร์วิส (NuSoap)
Go to : การทำ Login Form และ Update MySQL Data ผ่าน Web Service ด้วย PHP (NuSoap)
Go to : PHP Create - Call Web Service สร้างและเรียกเว็บเซอร์วิส ด้วย PHP (NuSoap and Soap)
Go to : PHP สร้าง Web Service และใช้ .NET เรียก Web Service ของ PHP (ASP.NET and Windows Form)
Go to : php กับ web service ขอคำปรึกษาเรื่องการ return array ใน webservice ครับ
Go to : สอบถาม jquery ในส่วนของการนำ json data ที่เป็นภาษาไทย ในการนำไปใช้งานครับ
|
|
Total Votes: 3Overall Rating: 3.3 / 5 |
|
 |
|
|
|
By : |
TC Admin
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
  |
|
Create Date : |
2015-11-19 |
|
Download : |
No files |
|
|