ใน workshop นี้จะแนะนำการเขียน json กับ php เพื่อเรียกข้อมูลจากฐานข้อมูลมาแสดงนะครับ ซึ่งน่าจะมีประโยชน์กับหลายๆคน มาเริ่มกันเลยครับ
ทดลองสร้าง database ดังนี้ database name : myshop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
CREATE TABLE IF NOT EXISTS `products` ( `id` int(11) NOT NULL, `name` varchar(32) NOT NULL, `description` text NOT NULL, `price` int(11) NOT NULL, `category_id` int(11) NOT NULL, `created` datetime NOT NULL, `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; -- -- Dumping data for table `products` -- INSERT INTO `products` (`id`, `name`, `description`, `price`, `category_id`, `created`, `modified`) VALUES (1, 'LG P880 4X HD', 'My first awesome phone!', 336, 3, '0000-00-00 00:00:00', '0000-00-00 00:00:00'), (2, 'Google Nexus 4', 'The most awesome phone of 2013!', 299, 2, '0000-00-00 00:00:00', '0000-00-00 00:00:00'), (3, 'Samsung Galaxy S4', 'How about no?', 604, 3, '0000-00-00 00:00:00', '2015-05-03 04:20:18'), (6, 'Bench Shirt', 'The best shirt!', 295, 1, '2014-06-01 01:12:26', '2015-05-03 04:19:40'), (7, 'Lenovo Laptop', 'My business partner.', 399, 2, '2014-06-01 01:13:45', '2014-05-31 03:13:39'), (8, 'Samsung Galaxy Tab 10.1', 'Good tablet.', 259, 2, '2014-06-01 01:14:13', '2014-05-31 03:14:08'), (9, 'Spalding Watch', 'My sports watch.', 199, 1, '2014-06-01 01:18:36', '2014-05-31 03:18:31'), (10, 'Sony Smart Watch', 'The coolest smart watch!', 300, 2, '2014-06-06 17:10:01', '2014-06-05 19:09:51'), (11, 'Huawei Y300', 'For testing purposes.', 100, 2, '2014-06-06 17:11:04', '2014-06-05 19:10:54'), (12, 'Abercrombie Lake Arnold Shirt', 'Perfect as gift!', 60, 1, '2014-06-06 17:12:21', '2014-06-05 19:12:11'), (13, 'Abercrombie Allen Brook Shirt t', 'Cool red shirt!', 400, 1, '2014-06-06 17:12:59', '2015-05-15 10:04:17'), (19, 'สินค้า', 'สินค้า', 33, 1, '2015-05-14 20:09:25', '2015-05-14 13:09:25'); |
และ json ไฟล์เพื่อเรียกข้อมูลจาก database นี้มาแสดงนะครับ
ถ้าเราจะเปลี่ยนชื่อ datase กับ table ให้สังเกตบรรทัดที่ 3, 5, 8 นะครับต้องเปลี่ยนชื่อการเชื่อมต่อ datase ชื่อตารางให้ถูกต้อง
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php //connect db $objConnect = mysql_connect("localhost","root",""); // database $objDB = mysql_select_db("myshop"); mysql_query("SET NAMES UTF8"); //select table $SQLstring = "SELECT * FROM products ORDER BY id ASC "; $objQuery = mysql_query($SQLstring); $numRows = mysql_num_fields($objQuery); $resultArray = array(); while($obResult = mysql_fetch_array($objQuery)) { $arrCol = array(); for($i=0;$i<$numRows;$i++) { $arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i]; } array_push($resultArray,$arrCol); } mysql_close($objConnect); header ('Content-type: text/html; charset=utf-8'); echo json_encode($resultArray); ?> |
เมื่อทดลอง run ไฟล์นี้ ผลที่ได้คือ จะแสดงข้อมูลทั้งหมดบน table ที่เราเรียกมาแสดง
json ไฟล์สามารถนำไปประยุกต์ใช้ได้กับการพัฒนาเว็บไซต์หลายรูปแบบ แม้กระทั่ง Application บน Smart phone ลองศึกษาและฝึกปฏิบัติดูนะครับ ^_^