Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,032

HOME > PHP > PHP Forum > ขอความช่วยเหลือครับ ต้องการเช็คเงื่อนไขช่วงเวลาการใช้งานอุปกรณ์ครับ



 

ขอความช่วยเหลือครับ ต้องการเช็คเงื่อนไขช่วงเวลาการใช้งานอุปกรณ์ครับ

 



Topic : 136606



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




สวัสดีครับ คือตอนนี้ติดปัญหาเรื่องการเช็คช่วงเวลา ผมแบ่งเวลาการใช้งานเป็น เช้า บ่าย ทั้งวัน

1.ปัญหาที่พบคือ นาย A ยืมอุปกรณ์ BR-0004 วันที่ยืมอุปกรณ์ "2022-02-23" และวันที่คืนอุปกรณ์ "2022-02-23" ช่วงเวลาใช้งาน = "ทั้งวัน" ไปแล้ว

เมื่อนาย B มาจองวันที่ "2022-02-23" ช่วงเวลาใช้งาน "ทั้งวัน" ซึ่งในผลลัพธ์นี้รูปนี้ "อุปกณ์มีการใช้งานอยู่" ถูกต้อง
11

และนาย C ยืมอุปกรณ์ BR-0004 มีการจองคิวในวันที่ "2022-02-23" ช่วงเวลาใช้งาน ="เช้า" ผลลัพธ์มันออกเป็น ="อุปกรณ์พร้อมใช้งาน" แต่ในความเป็นจริงมันต้องออกมาเป็นผลลัพธ์ ="อุปณ์มีการใช้งานอยู่"
33

ซึ่งเงื่อนไขใน Code ที่ผมเช็คนั้นไม่ถูกต้องครับ พอจะแนะนำได้ไหมครับ

Code
SELECT * FROM `stock_borrow` WHERE ((st_date_borrow BETWEEN '2022-02-23' AND '2022-02-23') OR (st_date_return BETWEEN '2022-02-23' AND '2022-02-23') OR ('2022-02-23' BETWEEN st_date_borrow AND st_date_return) OR ('2022-02-23' BETWEEN st_date_borrow AND st_date_return )) AND st_section = 'เช้า' AND st_status ='Borrowing'



Code ที่ใช้เช็คเงื่อนไข ที่ผมทำอยู่ปัจจุบันครับ ใส่เงื่อนไขไม่ถูกครับ
Code (PHP)
<?php
  include('../../connect.php');
  echo $_POST["st_date_borrow"]."---------".$_POST["st_date_return"]."<br>";
  if(!empty($_POST["st_date_borrow"])) {
 $sql = "SELECT * FROM `stock_borrow`
            WHERE ((st_date_borrow BETWEEN '".$_POST['st_date_borrow']."' AND '".$_POST['st_date_return']."') OR
            (st_date_return BETWEEN '".$_POST['st_date_borrow']."' AND '".$_POST['st_date_return']."') OR
            ('".$_POST['st_date_borrow']."' BETWEEN st_date_borrow AND st_date_return) OR
            ('".$_POST['st_date_return']."' BETWEEN st_date_borrow AND st_date_return )) AND st_section = '".$_POST['st_section']."' AND
            st_status ='Borrowing'" or die("Error : " . mysqli_error());
           echo $sql;

    $result = mysqli_query($con,$sql);
    $count = mysqli_num_rows($result);
    
    if($count>0) {
      if($_POST['st_section'] == "ทั้งวัน"){
      echo "<span style='color:red'> อุปกรณ์มีการใช้งานอยู่.</span>";
      echo "<script>$('#submit').prop('disabled',true);</script>";
    }elseif ($_POST['st_section'] == "เช้า") {
      echo "<span style='color:red'> อุปกรณ์มีการใช้งานอยู่.</span>";
      echo "<script>$('#submit').prop('disabled',true);</script>";
    }elseif ($_POST['st_section']  == "บ่าย") {
      echo "<span style='color:red'> อุปกรณ์มีการใช้งานอยู่.</span>";
      echo "<script>$('#submit').prop('disabled',true);</script>";
    }
  } else {
      echo "<span style='color:green'> อุปกรณ์พร้อมใช้งาน.</span>";
      echo "<script>$('#submit').prop('disabled',false);</script>";
    }
  }


?>





Tag : PHP, Ajax









ประวัติการแก้ไข
2022-02-24 10:41:07
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-02-23 19:27:07 By : seetai View : 499 Reply : 8
 

 
เชื่อว่าคุณพยายามอธิบายเพื่อให้เข้าใจง่ายแล้ว
แต่ผมยัง งง อยู่

1. ปัญหาที่พบจริงๆ คืออะไร
2. สิ่งที่ต้องการยังไม่เคลียร์ ถ้าเป็นไปได้ลองยกตัวอย่างผลลัพธ์ให้ดูหน่อยครับ
อย่างวันที่คืนมีสองตัวอย่างคือ

st_section = 'เช้า'
st_section = 'ทั้งวัน'

แล้วมันไม่เป็นไปตามความต้องการยังไง มีความสัมพันธ์กับที่วงแดงๆ ไว้อย่างไร

st_status ='Borrowing' ก็บอกอยู่แล้วไม่ใช่หรือ ว่าไม่ว่าง
งั้นก็เพิ่มเข้าไปว่า available ถ้าว่าง
แต่ก็มี st_section = 'เช้า' ซึ่งแสดงว่าว่างอยู่แล้วก็ไม่จำเป็นอีก

หรือไม่ลองพิจารณาออกแบบฐานทัพใหม่ดูไหม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 08:58:30 By : 009
 


 

No. 2



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


1.ปัญหาที่พบคือ นาย A ยืมอุปกรณ์ BR-0004 วันที่ยืมอุปกรณ์ "2022-02-23" และวันที่คืนอุปกรณ์ "2022-02-23" ช่วงเวลาใช้งาน = "ทั้งวัน" ไปแล้ว

เมื่อนาย B มาจองวันที่ "2022-02-23" ช่วงเวลาใช้งาน "ทั้งวัน" ซึ่งในผลลัพธ์นี้รูปนี้ "อุปกณ์มีการใช้งานอยู่" ถูกต้อง
11

และนาย C ยืมอุปกรณ์ BR-0004 มีการจองคิวในวันที่ "2022-02-23" ช่วงเวลาใช้งาน ="เช้า" ผลลัพธ์มันออกเป็น ="อุปกรณ์พร้อมใช้งาน" แต่ในความเป็นจริงมันต้องออกมาเป็นผลลัพธ์ ="อุปณ์มีการใช้งานอยู่"
33

ซึ่งเงื่อนไขใน Code ที่ผมเช็คนั้นไม่ถูกต้องครับ พอจะแนะนำได้ไหมครับ

2.ผลลัพธ์
นาย A ได้ยืม BR-0004 ของวันที่ "2022-02-25" และคืนวันที่ "2022-02-26" ช่วงเวลาใช้งาน ="ทั้งวัน"ไปแล้ว

และนายมา B ยืม BR-0004 ของวันที่ "2022-02-25" และคืนวันที่ "2022-02-26" ช่วงเวลาใช้งาน ="ทั้งวัน" สถานะบอก "อุปกรณ์มีการใช้งานอยู่" เพราะนาย A ยืมอุปกรณ์อยู่ ถูกต้อง
44

และนาย C ยืม BR-0004 ของวันที่ "2022-02-25" และคืนวันที่ "2022-02-25" ช่วงเวลาใช้งาน ="เช้า" สถานะบอก "อุปกรณ์พร้อมใช้งาน" ซึ่งไม่ถูกต้อง เพราะนาย A ยืมอุปกรณ์อยู่

44


ช่วงเวลาการใช้งานจะมี 3ช่วง เช้า บ่าย ทั้งวัน ลงใน st_section

ประมาณนี้ครับ


ประวัติการแก้ไข
2022-02-24 10:41:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 10:00:49 By : seetai
 

 
input ของช่วงเวลา เป็น type text หรือ select ครับ
ถ้าเป็น text ตอนเช็ค $_POST ลองใช้ร่วมกับ trim เพื่อให้แน่ใจว่าไม่มีช่องว่างติดมาด้วย

ถ้าให้แนะนำ พวกสถานะควรเปลี่ยนเป็นตัวเลขแทน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 10:29:21 By : 009
 


 

No. 4



โพสกระทู้ ( 9,568 )
บทความ ( 2 )



สถานะออฟไลน์


ตรงไหนที่อ้างอิงอุปกรณ์ BR-0004

ตรวจสอบการใช้ where clause ในส่วนของ and or ของการใช้ ช่วงเข้า - ทั้งวัน ให้ถูกต้อง
และก็อะไรที่เป็น text เอามาเป็น text ไม่ใช่เอามาเป็นภาพ จะก๊อปมาเช็คก็ทำไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 10:42:49 By : Chaidhanan
 


 

No. 5



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ครับ ได้เปลี่ยนเป็นตัวแลขแทน
0 = ทั้งวัน
1 = เช้า
2 = บ่าย

ตอนนี้สามารถเช็คเงื่อนไขได้แล้วว่าอุปกรณ์ใช้งานอยู่
แต่ยังติดที่ อุปกรณ์พร้อมใช้งาน ยังไม่เข้าเงื่อนไขครับ

Code (PHP)
<?php
  include('../../connect.php');
  echo $_POST["st_date_borrow"]."---------".$_POST["st_date_return"]."<br>";
  if(!empty($_POST["st_date_borrow"])) {
 $sql = "SELECT * FROM `stock_borrow`
            WHERE ((st_date_borrow BETWEEN '".$_POST['st_date_borrow']."' AND '".$_POST['st_date_return']."') OR
            (st_date_return BETWEEN '".$_POST['st_date_borrow']."' AND '".$_POST['st_date_return']."') OR
            ('".$_POST['st_date_borrow']."' BETWEEN st_date_borrow AND st_date_return) OR
            ('".$_POST['st_date_return']."' BETWEEN st_date_borrow AND st_date_return )) AND
            st_status ='Borrowing'" or die("Error : " . mysqli_error());
           echo $sql;

    $result = mysqli_query($con,$sql);
    $count = mysqli_num_rows($result);
    while ($row = mysqli_fetch_array($result)) {
      if ($row["st_section"] == 1 && $_POST["st_section"] == 2 && $count > 0) {
        echo "<span style='color:green'> อุปกรณ์พร้อมใช้งาน.</span>";
        echo "<script>$('#submit').prop('disabled',false);</script>";
      } elseif ($row["st_section"] == 2 && $_POST["st_section"] == 1 && $count > 0) {
        echo "<span style='color:green'> อุปกรณ์พร้อมใช้งาน.</span>";
        echo "<script>$('#submit').prop('disabled',false);</script>";
      } elseif ($count > 0) {
        echo "<span style='color:green'> อุปกรณ์พร้อมใช้งาน.</span>";
        echo "<script>$('#submit').prop('disabled',false);</script>";
      }else {
        echo "<span style='color:red'> อุปกรณ์มีการใช้งานอยู่.</span>";
        echo "<script>$('#submit').prop('disabled',true);</script>";
      }
    }
}


ตรงเงื่อนไขผิดพลาดตรงไหน ช่วยแนะนำหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 12:31:54 By : seetai
 


 

No. 6



โพสกระทู้ ( 9,568 )
บทความ ( 2 )



สถานะออฟไลน์


Code (PHP)
<?php
  include('../../connect.php');
  echo $_POST["st_date_borrow"]."---------".$_POST["st_date_return"]."<br>";
  if(!empty($_POST["st_date_borrow"])) {
		$sql = "SELECT s.*,
			if(	(st_date_borrow BETWEEN d_bor AND d_ret ) 
					OR
				(st_date_return BETWEEN d_bor AND d_ret )
					OR
				(d_bor BETWEEN st_date_borrow AND st_date_return) 
					OR
				(d_ret BETWEEN st_date_borrow AND st_date_return )
				, 'use', 'not use'
			) tmp_stat
		FROM ( select ? d_bor, ? d_ret) tb, `stock_borrow` s limit 10
		";// or die("Error : " . mysqli_error());
           //echo $sql;
		$stm = $con->prepare($sql);
		$stm->bind_param('ss',$_POST['st_date_borrow'],$_POST['st_date_return']);
		$stm->execute();    
    while ($row = $stm->fetch_assoc()) {
			echo json_encode($row),'<br>';
    }
}


ลองคำสั่งนี้ ให้ดูหน่อย
คำสั่งนี้ให้แสดงแค่ 10 รายการ เพื่อทดสอบ


ประวัติการแก้ไข
2022-02-24 13:04:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 13:03:23 By : Chaidhanan
 


 

No. 7



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


Quote:
Error ครับพี่ Chaidhanan
66

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-24 13:19:31 By : seetai
 


 

No. 8



โพสกระทู้ ( 9,568 )
บทความ ( 2 )



สถานะออฟไลน์


https://www.php.net/manual/en/mysqli-stmt.bind-param.php
ลองเช็คกับ link นี้ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-02-25 15:26:01 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอความช่วยเหลือครับ ต้องการเช็คเงื่อนไขช่วงเวลาการใช้งานอุปกรณ์ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

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

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่