ปักหมุด รวมคำตอบที่อาจจะมีประโยชน์

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ปักหมุด รวมคำตอบที่อาจจะมีประโยชน์

  ปักหมุด รวมคำตอบที่อาจจะมีประโยชน์
กระทู้นี้จะขอรวบรวม คำตอบต่างๆ ที่เคยได้แนะนำหรือตอบข้อสอบถาม ในเว็บบอร์ดที่ผ่านๆ มาไปแล้ว
โดยจะเอามาโพสซ้ำไว้ในความคิดเห็นต่างๆ เพื่อใช้เป็นตัวอ้างอิง สำหรับเป็นแนวทาง แนะนำโค้ดต่อไป


Ninenik 26-03-2017 03:49:22

  ข่าวประกาศ หรือกระทู้ถามนี้ ปิดการถาม-ตอบ ไม่สามารถตอบกลับได้



 ความคิดเห็นที่ 1
จากกระทู้ https://www.ninenik.com/forum_view_2181_1.html

การ insert แล้วข้อมูลไม่เข้าใน database ต้องไล่การทำงานตามลำดับ
หน้ารับค่า แบบนี้เป็นแนวทาง
 

ตัวอย่างไฟล์ dbconnect.php

<?php  
$mysqli = new mysqli("localhost", "root","","test");  
/* check connection */  
if ($mysqli->connect_errno) {  
    printf("Connect failed: %s\n", $mysqli->connect_error);  
    exit();  
}  
if(!$mysqli->set_charset("utf8")) {  
    printf("Error loading character set utf8: %s\n", $mysqli->error);  
    exit();  
}  
 

- ตรวจสอบว่ามีการเรียกใช้การเชื่อมต่อกับ database แล้วหรือไม่

 
<?php  
session_start();  
require_once("dbconnect.php");  
?>
 
 

- เข้าเงื่อนไข การรับค่าหรือไม่ เช่น ส่งค่ามา มีการการเช็คค่า และเข้าเงื่อนไขหรือไม่ 

 
 
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "check submit";
}
?>
 
 

- ดูว่าชนิดของตัวแปรที่ส่งมา กับเงื่อนไขเป็นตัวแปรประเภทเดียวกันหรือไม่

เช่น ส่งแบบ GET ต้องเช็คที่ตัวแปร $_GET['xxxx'] หรือ ส่งแบบ POST ต้องเช็คด้วยตัวแปร $_POST

 
<form name="form1" method="post" action="">
  <input type="text" name="data" id="data">
  <input type="submit" name="btn_submit" id="btn_submit" value="Submit">
</form>
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "check submit";
}
?>
 
หรือ
 
<form name="form1" method="get" action="">
  <input type="text" name="data" id="data">
  <input type="submit" name="btn_submit" id="btn_submit" value="Submit">
</form>
<?php
if(isset($_GET['btn_submit']) && $_GET['btn_submit']!=""){
	echo "check submit";
}
?>
 

- เช็คว่าค่าที่ส่งมา ส่งมาครบหรือไม่ รูปแบบตัวแปรหรือชนิดของตัวแปรถูกต้องหรือไม่

 
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "<pre>";
	print_r($_POST); // ตัวแปร POST ส่งอะไรมาบ้าง ส่งมาครับไหม
	print_r($_GET); // ตัวแปร _GET ส่งอะไรมาบ้าง ส่งมาครับไหม	
	echo "</pre>";
}
?>

- หลัง submit ข้อมูลตรวจสอบคำสั่ง sql ว่าเป็นค่าที่ถูกต้องหรือไม่

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	echo $sql; // แสดงคำส่ัง sql ว่ารูปแบบถูกต้องหรือไม่
	exit; // หยุดทำงาน
	$mysqli->query($sql);
}
?>
 

- กรณีคำสั่ง sql มีรูปแบบไม่ถูกต้องหรือต้องการป้องกัน sql injection สามารถเพิ่มคำสั่งป้องกันเพิ่มเติมได้

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	
	// ป้องกัน sql injection อย่างง่าย สามารถไปสร้างเป็นฟังก์ชั่เพื่อรียกใช้งานได้
	$_POST['data'] = $mysqli->real_escape_string($_POST['data']); 
	
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	echo $sql; // แสดงคำส่ัง sql ว่ารูปแบบถูกต้องหรือไม่
	exit; // หยุดทำงาน
	$mysqli->query($sql);
}
?>
 

- เช็คว่าคำสั่ง sql นั้นทำการคิวรี่ สำเร็จหรือไม่

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	
	// ป้องกัน sql injection อย่างง่าย สามารถไปสร้างเป็นฟังก์ชั่เพื่อรียกใช้งานได้
	$_POST['data'] = $mysqli->real_escape_string($_POST['data']); 
	
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	$result = $mysqli->query($sql);
	if($result){
		echo "query success";	
	}
}
?>

บางกรณีการส่งข้อมูลจำนวนมากๆ อาจจะถูกจำกัดด้วยตัวจัดการ php 
เช่น php_value post_max_size เราสามารถปรับแค่โดยการกำหนดใน php.ini ได้

 


>>>  อัพเดท >>> 02-12-2018
------------------------------------------

เพิ่มเติมแนวทางในการตรวจสอบข้อมูลได้ที่ลิ้งค์ด้านล่าง

http://niik.in/que_2798_6304

>>>  อัพเดท >>> 13-03-2019
------------------------------------------
ลิ้งค์สำหรับทดสอบคำสั่ง mysql ออนไลน์

https://www.w3schools.com/sql/trymysql.asp?filename=trysql_select_all
http://www.mysqltutorial.org/tryit/


ninenik 26-03-2017
 ความคิดเห็นที่ 2

แนวทางการตรวจสอบการเชื่อมต่อกับฐานข้อมูลบน server ด้วย mysqli

 
ตัวอย่างไฟล์เชื่อมต่อฐานข้อมูล
 

ไฟล์ dbconnect.php

 
<?php  
$mysqli = new mysqli("localhost", "ชื่อ user","รหัสผ่าน","ชื่อ database");  
/* check connection */ 
if ($mysqli->connect_errno) {  
    printf("Connect failed: %s\n", $mysqli->connect_error);  
    exit();  
}  
if(!$mysqli->set_charset("utf8")) {  
    printf("Error loading character set utf8: %s\n", $mysqli->error);  
    exit();  
}
 

- ตรวจสอบว่ามีการเรียกใช้การเชื่อมต่อกับ database แล้วหรือไม่

<?php
// โค้ดไฟล์ dbconnect.php ดูได้ที่ http://niik.in/que_2398_5642
require_once("dbconnect.php");
?>
หรือกรณีมีการใช้งาน session ด้วย
 
<?php  
session_start();  
// โค้ดไฟล์ dbconnect.php ดูได้ที่ http://niik.in/que_2398_5642
require_once("dbconnect.php");  
?>
 
หากเราไม่สามารถเชื่อมต่อฐานข้อมูลได้ เงื่อนไขจะเข้า  if ($mysqli->connect_errno) {  
ให้ตรวจสอบว่า ใส่ชื่อ user , รหัสผ่าน หรือชื่อ database ถูกต้องแล้วหรือไม่
 
 

- ตรวจสอบการคิวรี่ข้อมูลว่าทำสำเร็จหรือไม่ และตรวจสอบว่ามีข้อมูลหรือไม่

<?php
$sql = "
SELECT * FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่

}
?>
 

- ตรวจสอบว่าคิววรี่สำเร็จและถ้ามีข้อมูล ให้แสดงรายการข้อมูลนั้น กรณีมีรายการเดียว

<?php
$sql = "
SELECT * FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	$row = $result->fetch_assoc();
	echo $row['mydata'];
}
?>
 

- ตรวจสอบว่าคิววรี่สำเร็จและถ้ามีข้อมูล ให้แสดงรายการข้อมูลนั้น กรณีมีหลายรายการ

<?php
$sql = "
SELECT * FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	while($row = $result->fetch_assoc()){ // วนลูปแสดงรายการ
		echo $row['mydata'];
	}	
}
?>
 

- ตรวจสอบว่าคิววรี่สำเร็จและถ้ามีข้อมูลให้อัพเดท หรือถ้าไม่มีข้อมูล ให้เพิ่มรายการใหม่

<?php
$sql = "
SELECT a_id,a_name FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	$row = $result->fetch_assoc();
	$sql_update="
	UPDATE tbl_a SET 
	a_name='new value'
	WHERE a_id='".$row['a_id']."'
	";
	$mysqli->query($sql_update);	
}else{
	$sql_insert="
	INSERT INTO tbl_a SET
	a_name='new a_name' 
	";  
	$mysqli->query($sql_insert);
}
?>
 

- ตรวจสอบว่าการ UPDATE ข้อมูลมีการคิวรี่หรือไม่ และมีการเปลี่ยนแปลงค่าเกิดขึ้นหรือไม่

<?php
$sql = "
SELECT a_id,a_name FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	$row = $result->fetch_assoc();
	$sql_update="
	UPDATE tbl_a SET 
	a_name='new value'
	WHERE a_id='".$row['a_id']."'
	";
	if($mysqli->query($sql_update)){ // มีการคิวรี่อัพเพทข้อมูล
		if($mysqli->affected_rows>0){ // การคิวรี่มีการเปลี่ยนแปลงค่า
			
		}else{ // การคิวรี่ไม่มีการเปลี่ยนแปลงค่า เช่น กรณีเราอัพเดทค่าเดิม
			
		}
	}
}else{
	$sql_insert="
	INSERT INTO tbl_a SET
	a_name='new a_name' 
	";  
	$mysqli->query($sql_insert);
}
?>
 

- ตรวจสอบว่าการ INSERT ข้อมูลใหม่ มีการคิวรี่เกิดขึ้นหรือไม่ แล้วเกิดการเพิ่มรายการขึ้นหรือไม่

<?php
$sql = "
SELECT a_id,a_name FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	$row = $result->fetch_assoc();
	$sql_update="
	UPDATE tbl_a SET 
	a_name='new value'
	WHERE a_id='".$row['a_id']."'
	";
	if($mysqli->query($sql_update)){ // มีการคิวรี่อัพเพทข้อมูล
		if($mysqli->affected_rows>0){ // การคิวรี่มีการเปลี่ยนแปลงค่า
			
		}else{ // การคิวรี่ไม่มีการเปลี่ยนแปลงค่า เช่น กรณีเราอัพเดทค่าเดิม
			
		}
	}
}else{
	$sql_insert="
	INSERT INTO tbl_a SET
	a_name='new a_name' 
	";  
	$result = $mysqli->query($sql_insert);
	if($result && $mysqli->affected_rows>0){ // มีการคิวรี่และมีการเพิ่มรายการ
		
	}
}
?>
 

- ตรวจสอบว่า primary key หรือ ID ของรายการที่เพิ่มมาใหม่ มีค่าคืออะไร

<?php
$sql = "
SELECT a_id,a_name FROM tbl_a
";
$result = $mysqli->query($sql);
if($result && $result->num_rows>0){  // คิวรี่ข้อมูลสำเร็จหรือไม่ และมีรายการข้อมูลหรือไม่
	$row = $result->fetch_assoc();
	$sql_update="
	UPDATE tbl_a SET 
	a_name='new value'
	WHERE a_id='".$row['a_id']."'
	";
	if($mysqli->query($sql_update)){ // มีการคิวรี่อัพเพทข้อมูล
		if($mysqli->affected_rows>0){ // การคิวรี่มีการเปลี่ยนแปลงค่า
			
		}else{ // การคิวรี่ไม่มีการเปลี่ยนแปลงค่า เช่น กรณีเราอัพเดทค่าเดิม
			
		}
	}
}else{
	$sql_insert="
	INSERT INTO tbl_a SET
	a_name='new a_name' 
	";  
	$result = $mysqli->query($sql_insert);
	if($result && $mysqli->affected_rows>0){ // มีการคิวรี่และมีการเพิ่มรายการ
		$insert_userID = $mysqli->insert_id; // primary key ของรายการที่เพิ่มเข้ามาใหม่
	}
}
?>
 

- การตรวจสอบรายการที่มีการเปลี่ยนแปลงว่ามีกี่แถวที่มีการเปลี่ยนแปลง หรือมีข้อมูลกี่แถว

SELECT ใช้ 
 
$result->num_rows>0
 
กรณ๊คำสั่ง INSERT UPDATE DELETE ใช้
 
$mysqli->affected_rows
 

- รูปแบบการ SELECT ข้อมูล ใช้คำสั่งในกรณีต้องการข้อมูลหรือชุดข้อมูลในรูปแบบต่างๆ กันสามารถ
กำหนดได้ดังนี้ มีให้เลือก 4 แบบ

$result->fetch_assoc() // ส่งค่ากลับมาแบบ array key เป็นชื่อ field
$result->fetch_row() //  ส่งค่ากลับมาแบบ array key เป็น index เริ่มที่ 0,1 ....
$result->fetch_array() // ส่งค่าทั้งแบบ assoc และ row 
$result->fetch_object() // ส่งค่ากลับมาแบบ object 
 

- การปิดการเชื่อมต่อ mysql ใช้คำสั่ง แต่โดยปกติแล้ว มีคำสั่งสุดสิ้นสุดลง การปิดการเชื่อมต่อ
จะเกิดขึ้นเองโดยอัตโนมัติ เราอาจจะใช้หรือไม่ก็ได้

 
$mysqli->close(); //  ปิดการเชิ่อมต่อ server database mysql


 


>>>  อัพเดท >>> 02-12-2018
------------------------------------------

เพิ่มเติมแนวทางในการตรวจสอบข้อมูลได้ที่ลิ้งค์ด้านล่าง

http://niik.in/que_2798_6304

>>>  อัพเดท >>> 04-07-2019
------------------------------------------

การใช้งาน Prepared Statement

การใช้งาน MySQL ในรูปแบบ Prepared Statement เบื้องต้น http://niik.in/927 


ninenik 16-04-2017
 ความคิดเห็นที่ 3

CDN RESOURCES

Bootstrap 4.5.0

https://unpkg.com/bootstrap@4.5.0/dist/

Jquery 3.3.1

https://unpkg.com/jquery@3.3.1/dist/

SIMEPLE HTML WITH BOOTSTRAP 4.5.0

<!doctype html>
<html lang="th">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
	<title>Document</title> 
	<link rel="stylesheet" href="https://unpkg.com/bootstrap@4.5.0/dist/css/bootstrap.min.css" >
</head>
<body>


<script src="https://unpkg.com/jquery@3.3.1/dist/jquery.min.js"></script>
<script src="https://unpkg.com/bootstrap@4.5.0/dist/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(function(){
	
});
</script>
</body>
</html>


>>>  อัพเดท >>> 01-05-2018
------------------------------------------

เพิ่มเติม

https://cdnjs.com/libraries/

>>>  อัพเดท >>> 02-05-2018
------------------------------------------

Meata ป้องกันการ zoom หน้าเพจ

<meta name="viewport" content="width=device-width, user-scalable=no" />


>>>  อัพเดท >>> 23-01-2019
------------------------------------------

FONT-AWESOME

 
 
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css" >


ninenik 11-04-2018
 ความคิดเห็นที่ 4

ตารางฐานข้อมูลจังหวัด สำหรับใช้ในการทดสอบ ในบทความต่างๆ 

--
-- Table structure for table `tbl_provinces`
--

CREATE TABLE `tbl_provinces` (
  `province_id` int(5) NOT NULL,
  `province_code` varchar(2) NOT NULL,
  `province_name` varchar(150) NOT NULL,
  `province_name_eng` varchar(150) NOT NULL,
  `geo_id` int(5) NOT NULL DEFAULT '0',
  `last_update` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `tbl_provinces`
--

INSERT INTO `tbl_provinces` (`province_id`, `province_code`, `province_name`, `province_name_eng`, `geo_id`, `last_update`) VALUES
(1, '10', 'กรุงเทพมหานคร', 'Bangkok', 2, '2018-09-19 12:11:03'),
(2, '11', 'สมุทรปราการ', 'Samut Prakan', 2, '2018-09-19 12:11:03'),
(3, '12', 'นนทบุรี', 'Nonthaburi', 2, '2018-09-19 12:11:03'),
(4, '13', 'ปทุมธานี', 'Pathum Thani', 2, '2018-09-19 12:11:03'),
(5, '14', 'พระนครศรีอยุธยา', 'Phra Nakhon Si Ayutthaya', 2, '2018-09-19 12:11:03'),
(6, '15', 'อ่างทอง', 'Ang Thong', 2, '2018-09-19 12:11:03'),
(7, '16', 'ลพบุรี', 'Loburi', 2, '2018-09-19 12:11:03'),
(8, '17', 'สิงห์บุรี', 'Sing Buri', 2, '2018-09-19 12:11:03'),
(9, '18', 'ชัยนาท', 'Chai Nat', 2, '2018-09-19 12:11:03'),
(10, '19', 'สระบุรี', 'Saraburi', 2, '2018-09-19 12:11:03'),
(11, '20', 'ชลบุรี', 'Chon Buri', 5, '2018-09-19 12:11:03'),
(12, '21', 'ระยอง', 'Rayong', 5, '2018-09-19 12:11:03'),
(13, '22', 'จันทบุรี', 'Chanthaburi', 5, '2018-09-19 12:11:03'),
(14, '23', 'ตราด', 'Trat', 5, '2018-09-19 12:11:03'),
(15, '24', 'ฉะเชิงเทรา', 'Chachoengsao', 5, '2018-09-19 12:11:03'),
(16, '25', 'ปราจีนบุรี', 'Prachin Buri', 5, '2018-09-19 12:11:03'),
(17, '26', 'นครนายก', 'Nakhon Nayok', 2, '2018-09-19 12:11:03'),
(18, '27', 'สระแก้ว', 'Sa Kaeo', 5, '2018-09-19 12:11:03'),
(19, '30', 'นครราชสีมา', 'Nakhon Ratchasima', 3, '2018-09-19 12:11:03'),
(20, '31', 'บุรีรัมย์', 'Buri Ram', 3, '2018-09-19 12:11:03'),
(21, '32', 'สุรินทร์', 'Surin', 3, '2018-09-19 12:11:03'),
(22, '33', 'ศรีสะเกษ', 'Si Sa Ket', 3, '2018-09-19 12:11:03'),
(23, '34', 'อุบลราชธานี', 'Ubon Ratchathani', 3, '2018-09-19 12:11:03'),
(24, '35', 'ยโสธร', 'Yasothon', 3, '2018-09-19 12:11:03'),
(25, '36', 'ชัยภูมิ', 'Chaiyaphum', 3, '2018-09-19 12:11:03'),
(26, '37', 'อำนาจเจริญ', 'Amnat Charoen', 3, '2018-09-19 12:11:03'),
(27, '39', 'หนองบัวลำภู', 'Nong Bua Lam Phu', 3, '2018-09-19 12:11:03'),
(28, '40', 'ขอนแก่น', 'Khon Kaen', 3, '2018-09-19 12:11:03'),
(29, '41', 'อุดรธานี', 'Udon Thani', 3, '2018-09-19 12:11:03'),
(30, '42', 'เลย', 'Loei', 3, '2018-09-19 12:11:03'),
(31, '43', 'หนองคาย', 'Nong Khai', 3, '2018-09-19 12:11:03'),
(32, '44', 'มหาสารคาม', 'Maha Sarakham', 3, '2018-09-19 12:11:03'),
(33, '45', 'ร้อยเอ็ด', 'Roi Et', 3, '2018-09-19 12:11:03'),
(34, '46', 'กาฬสินธุ์', 'Kalasin', 3, '2018-09-19 12:11:03'),
(35, '47', 'สกลนคร', 'Sakon Nakhon', 3, '2018-09-19 12:11:03'),
(36, '48', 'นครพนม', 'Nakhon Phanom', 3, '2018-09-19 12:11:03'),
(37, '49', 'มุกดาหาร', 'Mukdahan', 3, '2018-09-19 12:11:03'),
(38, '50', 'เชียงใหม่', 'Chiang Mai', 1, '2018-09-19 12:11:03'),
(39, '51', 'ลำพูน', 'Lamphun', 1, '2018-09-19 12:11:03'),
(40, '52', 'ลำปาง', 'Lampang', 1, '2018-09-19 12:11:03'),
(41, '53', 'อุตรดิตถ์', 'Uttaradit', 1, '2018-09-19 12:11:03'),
(42, '54', 'แพร่', 'Phrae', 1, '2018-09-19 12:11:03'),
(43, '55', 'น่าน', 'Nan', 1, '2018-09-19 12:11:03'),
(44, '56', 'พะเยา', 'Phayao', 1, '2018-09-19 12:11:03'),
(45, '57', 'เชียงราย', 'Chiang Rai', 1, '2018-09-19 12:11:03'),
(46, '58', 'แม่ฮ่องสอน', 'Mae Hong Son', 1, '2018-09-19 12:11:03'),
(47, '60', 'นครสวรรค์', 'Nakhon Sawan', 2, '2018-09-19 12:11:03'),
(48, '61', 'อุทัยธานี', 'Uthai Thani', 2, '2018-09-19 12:11:03'),
(49, '62', 'กำแพงเพชร', 'Kamphaeng Phet', 2, '2018-09-19 12:11:03'),
(50, '63', 'ตาก', 'Tak', 4, '2018-09-19 12:11:03'),
(51, '64', 'สุโขทัย', 'Sukhothai', 2, '2018-09-19 12:11:03'),
(52, '65', 'พิษณุโลก', 'Phitsanulok', 2, '2018-09-19 12:11:03'),
(53, '66', 'พิจิตร', 'Phichit', 2, '2018-09-19 12:11:03'),
(54, '67', 'เพชรบูรณ์', 'Phetchabun', 2, '2018-09-19 12:11:03'),
(55, '70', 'ราชบุรี', 'Ratchaburi', 4, '2018-09-19 12:11:03'),
(56, '71', 'กาญจนบุรี', 'Kanchanaburi', 4, '2018-09-19 12:11:03'),
(57, '72', 'สุพรรณบุรี', 'Suphan Buri', 2, '2018-09-19 12:11:03'),
(58, '73', 'นครปฐม', 'Nakhon Pathom', 2, '2018-09-19 12:11:03'),
(59, '74', 'สมุทรสาคร', 'Samut Sakhon', 2, '2018-09-19 12:11:03'),
(60, '75', 'สมุทรสงคราม', 'Samut Songkhram', 2, '2018-09-19 12:11:03'),
(61, '76', 'เพชรบุรี', 'Phetchaburi', 4, '2018-09-19 12:11:03'),
(62, '77', 'ประจวบคีรีขันธ์', 'Prachuap Khiri Khan', 4, '2018-09-19 12:11:03'),
(63, '80', 'นครศรีธรรมราช', 'Nakhon Si Thammarat', 6, '2018-09-19 12:11:03'),
(64, '81', 'กระบี่', 'Krabi', 6, '2018-09-19 12:11:03'),
(65, '82', 'พังงา', 'Phangnga', 6, '2018-09-19 12:11:03'),
(66, '83', 'ภูเก็ต', 'Phuket', 6, '2018-09-19 12:11:03'),
(67, '84', 'สุราษฎร์ธานี', 'Surat Thani', 6, '2018-09-19 12:11:03'),
(68, '85', 'ระนอง', 'Ranong', 6, '2018-09-19 12:11:03'),
(69, '86', 'ชุมพร', 'Chumphon', 6, '2018-09-19 12:11:03'),
(70, '90', 'สงขลา', 'Songkhla', 6, '2018-09-19 12:11:03'),
(71, '91', 'สตูล', 'Satun', 6, '2018-09-19 12:11:03'),
(72, '92', 'ตรัง', 'Trang', 6, '2018-09-19 12:11:03'),
(73, '93', 'พัทลุง', 'Phatthalung', 6, '2018-09-19 12:11:03'),
(74, '94', 'ปัตตานี', 'Pattani', 6, '2018-09-19 12:11:03'),
(75, '95', 'ยะลา', 'Yala', 6, '2018-09-19 12:11:03'),
(76, '96', 'นราธิวาส', 'Narathiwat', 6, '2018-09-19 12:11:03'),
(77, '97', 'บึงกาฬ', 'buogkan', 3, '2018-09-19 12:11:03');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_provinces`
--
ALTER TABLE `tbl_provinces`
  ADD PRIMARY KEY (`province_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_provinces`
--
ALTER TABLE `tbl_provinces`
  MODIFY `province_id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=78;



ninenik 19-09-2018
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ