我的查詢有問題。它給了我在某些情況下的正確結果,而對於某些情況,它給了我正確的結果,所以如果有人能告訴我要改變什麼,那將是驚人的,因爲我現在已經堅持了一段時間。這裏是我的表中的數據:MySQL查詢日期比較
表reservation_logs:
log_id int(15) auto_increment Primary Unique
room_log int(10)
dt_from date
dt_until date
表公寓:
apartman_id int(10) auto_increment Primary Unique
apartman_name int(10)
我的日期PHP代碼:
$date_from = 'text input date';
$date_until = 'text input date';
$myquery = ("SELECT * FROM reservation_logs WHERE room_log = '$apartman_id'
AND(((dt_from >= '$date_from' AND dt_from <= '$date_until')
AND (dt_until >= '$date_until' OR dt_until <= '$date_until')))");
現在我輸入一些日期我應該得到正確apartman_id
,如果它忙或不。以下是這種情況:當$date_from
等於當月的第一天,$date_until
等於一個月中的最後一天。但是,例如,如果我選擇的日期爲$date_from
等於該月的第16個月,而$date_until
等於該月的第17個月,如果從第15個月的第15個月到第19個可以說的空間繁忙,我會得到不正確的結果。我希望我不會讓更多的人想到背後的想法太複雜了。
這與您的問題沒有直接關係,但是您在此代碼中存在一些嚴重的SQL注入漏洞,您應該清理這些漏洞。確保在mysql_real_escape_string()或某些類似的函數中將所有輸入包含到查詢中。 – Asaph
這只是練習m8,它永遠不會看到我向你保證的網絡 – ant
請記住,在內部,日期列包括日期和時間。如果你想選擇從15日到16日的所有日期,你需要dt> = 15th和dt <17th(即16日在11:59.59.999 PM或更早) –