我準備好了一份聲明,該聲明抓取存儲設施中的租金並將它們放入列表中,以便在到期時跟蹤後端。我遇到的問題是,當聲明輸出清單時,如果不止一個人具有相同的天數直到他們到期,那麼該清單僅顯示其中一個租戶。我這是我事先準備好的聲明:準備好的陳述未取得所有結果
SELECT rentals.rental_startdate,
rentals.rental_renewdate,
rentals.rental_duedate,
rentals.rental_latedate,
rentals.rental_status,
rentals.rental_balance,
units.unit_id,
units.unit_number,
units.unit_status,
users.user_id,
users.user_fname,
users.user_lname,
@var := DATEDIFF(rentals.rental_renewdate,CURRENT_DATE) AS days
FROM rentals
INNER JOIN units ON units.unit_id = rentals.unit_id
INNER JOIN users ON users.user_id = rentals.user_id
WHERE rentals.rental_status=?
GROUP BY rentals.rental_renewdate HAVING days>=0 AND days<=?
ORDER BY rentals.rental_renewdate ASC
這個問題似乎從HAVING days>=0 AND days<=?
到來。日期等於通知期限,在變量中定義爲5天。當我把它拿走的時候,我看到了所有我們到期的人是否他們的租金是在5天或10天內到期的,我們並不是真正想要的,但是它解決了只在3天內看到一個人將要到期的問題的問題真的有2.有什麼看起來不合適的地方會導致這個問題?我使用while($select -> fetch()) {
來選擇行。
你在mysql監視器單獨運行查詢,看看結果是什麼?也許提取工作完美,查詢本身是「失去」記錄由於邏輯錯誤 –
我認爲天是一個字符類型,所以你得到一個字符串比較 – Jens
@MarcB我做到了,我得到的記錄相同我在網站上看到這是不正確的。 –