簡體   English   中英

如何從數據庫中查找特定日期是否位於兩個日期之間?

[英]how to find whether the a particular date lies between two dates from the database?

<?php

 $hostname = "localhost";
 $db_user = "root";  
 $db_password = "";  
 $database = "rentcar";  
 $db_table = "reservation"; 

 $db = mysql_connect($hostname, $db_user, $db_password); 

 mysql_select_db($database,$db);

 $date1 = $_POST['datepicker1'];

 $date2 = $_POST['datepicker2'];


 $start_date = strtotime($date1);

 $end_date = strtotime($date2);

 $query  =  mysql_query("SELECT * FROM reservation WHERE  ('pudate'>".$start_date." AND         
 'dodate'<".$end_date.") OR ('pudate'<".$start_date." AND 'dodate'>".$end_date." ) OR 
  ('pudate'<".$end_date." AND 'dodate'>".$end_date.") OR ('pudate'<".$start_date." AND 
  'dodate'>".$start_date." )");

 $result = mysql_query($query); 

  if ($result) 

 {
   echo "vehicle is available";
 }

 else
 {
 echo "vehicle is not available";    

  }

 ?>

pudate和dodate是數據庫中的日期。 當我嘗試運行時,始終向我顯示輸出,因為車輛不可用。 我正在運行查詢st,檢查這兩天之間是否已經預訂了汽車(如果已經預訂了汽車),它將說汽車不可用,但是無論我如何嘗試運行查詢,它總是會給我相同的結果。

您未能獲得查詢的實際結果。 實際上,您兩次調用mysql_query() (返回一個handle )。 在您的情況下,請使用mysql_num_rows()獲取行數,該行數將告訴您該載具是否可用。

問題是您沒有正確處理查詢結果。 要解決此問題,您可以嘗試執行以下操作:

$result =  mysql_query("SELECT * FROM reservation WHERE  ('pudate'>".$start_date." AND         
  'dodate'<".$end_date.") OR ('pudate'<".$start_date." AND 'dodate'>".$end_date." ) OR 
  ('pudate'<".$end_date." AND 'dodate'>".$end_date.") OR ('pudate'<".$start_date." AND 
  'dodate'>".$start_date." )");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    //$row contains the results of your query  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM