fb_ads
www.รับเขียนโปรแกรม.net รับเขียนโปรแกรม ระบบต่างๆ เช่น ระบบข้อมูลบุคคล ระบบข้อมูลลูกค้า ระบบซื้อขาย คลังสินค้า ระบบเช่าจอง ทำงานบน Website ด้วย PHP MySql NodeJs HTML5 JavaScript Ajax
เทคนิคการเขียนคำสั่ง sql ป้องกันเวลาทับซ้อนในระบบจอง
สำหรับระบบการจองนั้น จำเป็นอย่างยิ่งที่จะต้องมีการตรวจสอบไม่ให้การจองมีการทับซ้อนกับเวลาที่มีการจองไว้แล้วในต่อไปนี้นี้คือคำสั่ง sql ตรวจสอบว่าการจองต้องไม่ทับซ้อนกัน
//กำหนดให้ เวลาที่ต้องการจอง อยู่เริ่มจากเวลาจริง $min นาที และเลิกก่อนเวลาจริง $min นาที
//เพราะผู้ใช้จะได้สามารถจองในเวลาถัดไปได้เลย โดยที่ไม่ทับกับการจองก่อนหน้า
$start_time=date('Y-m-d H:i:s', strtotime(' +'.$min.' minutes', strtotime($_POST["start_time"]) ));
$end_time=date('Y-m-d H:i:s', strtotime(' -'.$min.' minutes', strtotime($_POST["end_time"]) ));
//ตัวอย่างคำสั่ง sql สำหรับตรวจสอบการจอง
$sql="SELECT * FROM reservation
WHERE(
( (start_time>='".$start_time."')AND(end_time<='".$end_time."') )OR
( (start_time<='".$start_time."')AND(end_time>='".$end_time."') )OR
( (start_time BETWEEN '".$start_time."' AND '".$end_time."') )OR
( (end_time BETWEEN '".$start_time."' AND '".$end_time."') )
)";
//เวลาที่จองใหม่ต้องไม่คล่อมเวลาที่จองเดิม
(start_time>='".$start_time."')AND(end_time<='".$end_time."')
//เวลาที่จองใหม่ต้องไม่อยู่ในเวลาที่จองเดิม
(start_time<='".$start_time."')AND(end_time>='".$end_time."')
//เวลาที่จองใหม่ต้องไม่ทับซ้อนเวลาที่จองเดิม
( (start_time BETWEEN '".$start_time."' AND '".$end_time."') )OR
( (end_time BETWEEN '".$start_time."' AND '".$end_time."') )
ถ้ารันคำสั่งตามเงื่อนไขแล้วมีผลลัพธ์มากกว่าหนึ่งแถวแสดงว่าการจองมีการทับซ้อน
ตัวอย่างการทำ Firebase Authentication Login โดย Google Account
Firebase นั้นมี API สำหรับการทำ Authentication โดย Google Account โดยมีขั้นตอนดังต่อไปนี้
รับเขียนโปรแกรม Firebase Javascript
ตัวอย่าง Code การทำ Authentication ด้วย google
<!DOCTYPE html>
<html lang="th">
<head>
<title>Firebase Google Authentication</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<script src="https://use.fontawesome.com/releases/v5.5.0/js/all.js" ></script>
<script src="https://www.gstatic.com/firebasejs/5.5.9/firebase.js"></script>
<script>
// ตั้งค่า Firebase สามารถ ดูได้ตามรูปที่ 2
var config = {
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "..."
};
firebase.initializeApp(config);
</script>
</head>
<body>
<div class="container">
<br /><br />
<div id="login_panel" class='text-right' >
<!-- สร้างปุ่มเข้าสู่ระบบโดยกำหนดให้ยังไม่แสดงในครั้งแรก -->
<button class="btn btn-primary btn_login " style="display:none" >
<i class="fa fa-key" ></i> เข้าสู่ระบบ
</button>
<!-- สร้าง span สำหรับ -->
<span class="user_info" ></span>
<!-- สร้าง ออกจากระบบ ระบบโดยกำหนดให้ยังไม่แสดงในครั้งแรก -->
<button class="btn btn-danger btn_sign_out " style="display:none" >
<i class="fa fa-sign-out-alt" ></i> ออกจากระบบ
</button>
</div>
<script>
//bind event กำหนด function การทำงานเมื่อ กดปุ่ม เข้าสู่ระบบ
$("#login_panel").find(".btn_login").on("click",function(){
//เมื่อกดปุ่มเข้าสู่ระบบแล้ว ให้ไปที่ หน้าจอของ google
var GoogleAuthProvider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithRedirect(GoogleAuthProvider);
});
//bind event กำหนด function การทำงานเมื่อ กดปุ่มออกจากระบบ
$("#login_panel").find(".btn_sign_out").on("click",function(){
//คำสั่ง ออกจการะบบ ของ firebase
firebase.auth().signOut().then(function() {
});
});
//ชุดคำสั่งของ firebase เมื่อมีการเปลี่ยนแปลงสถานะการ login
firebase.auth().onAuthStateChanged(function(user) {
if (user)// เมื่อผู้ใช้อยู่ใน สถานะ login
{
console.log(user);
$("#login_panel").find(".btn_login").css("display","none");//ซ่อนปุ่ม เข้าสู่ระบบ
$("#login_panel").find(".btn_sign_out").css("display","");//แสดงปุ่ม ออกจากระบบ
$("#login_panel").find(".user_info").html(user.displayName);//แสดงชื่อผู้ใช้ ที่ login
}
else // เมื่อผู้ใช้ไม่ได้อยู่ใน สถานะ login
{
$("#login_panel").find(".btn_login").css("display","");//แสดงปุ่ม เข้าสู่ระบบ
$("#login_panel").find(".btn_sign_out").css("display","none");//ซ่อนปุ่ม ออกจากระบบ
$("#login_panel").find(".user_info").html("");//ซ่อนชื่อผู้ใช้
}
});
</script>
</div>
</body>
</html>
let กับ var ต่างกันอย่างไร
การประกาศตัวแปรใน javascript นั้น เราใช้คำสั่ง var ตามด้วย ชื่อตัวแปร
แต่ Javascript ES6 ได้เพิ่ม การประกาศตัวแปรแบบ let มาด้วยในที่นี้จะอธิบายความแตกต่างระหว่างการประกาศตัวแปรระหว่าง let กับ var
function foo()
{
var x=0;
if(true)
{
var x = 1;
}
return x;
}
function bar()
{
let x=0;
if(true)
{
let x = 1;
}
return x;
}
alert(foo());//แจ้งเตือน 1
alert(bar());//แจ้งเตือน 0
สรุป
สำหรับ var
var x=0;
if(true)
{
var x = 1;
}
x ใน block if กับ x ภายนอกจะถือว่าเป็นตัวเดียวกัน
แต่สำหรับ let
let x=0;
if(true)
{
let x = 1;
}
x ใน block if กับ x ภายนอกจะถือว่าเป็นคนละตัวกัน