2010-09-21 85 views
0

編輯:改變對不起,我嘗試處理MySQL的DATETIME值, 這是我的MySQL查詢的整個問題:在MySQL中處理日期?

$result="SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m. m.dt 
FROM relationships r, notes m, user u 
WHERE m.user_id = r.leader 
AND r.leader = u.user_id 
AND r.listener ='".$_SESSION['user_id']."' 
UNION 
SELECT username, picture, id, user_note, reply_id, reply_name, dt 
FROM user u, notes b 
WHERE u.user_id = b.user_id 
AND b.user_id = '".$_SESSION['user_id']."' 
AND dt < '".$lastmsg."' 
ORDER BY dt DESC 
LIMIT 10 "; 

我嘗試從該查詢不是「$ lastmsg」年長找到行,而不是$ lastmsg本身,我想過使用少於但不等於操作符!我不知道這是愚蠢的!

查詢的工作原理,但它的錯誤信息!

+1

你的'ajax_more.php'是否返回已經在頁面上的內容? – 2010-09-21 13:09:43

+0

你只有第一篇文章,其餘的是由'ajax_more.php'上的數據庫查詢生成的。我現在要上傳代碼! – getaway 2010-09-21 13:11:13

+0

順便說一句dt = datetime,這是如何生成帖子! – getaway 2010-09-21 13:17:15

回答

0

您只限制UNION下半部分的日期。試試這個:

SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt 
FROM relationships r, notes m, user u 
WHERE m.user_id = r.leader 
AND r.leader = u.user_id 
AND r.listener ='".$_SESSION['user_id']."' 
AND m.dt < '".$lastmsg."' 
UNION 
SELECT username, picture, id, user_note, reply_id, reply_name, dt 
FROM user u, notes b 
WHERE u.user_id = b.user_id 
AND b.user_id = '".$_SESSION['user_id']."' 
AND dt < '".$lastmsg."' 
ORDER BY dt DESC 
LIMIT 10 
+0

謝謝,但它仍然提取相同的數據 – getaway 2010-09-21 14:34:26

+0

你可以直接運行查詢來確認問題出在查詢中嗎?您可能想要單獨運行它們以查看UNION的哪一部分正在返回不需要的行。 – RickF 2010-09-21 14:44:22

+0

這就是即時即將嘗試什麼? :) – getaway 2010-09-21 14:47:16

0

難道不應該着眼於日期查詢片段是

AND dt > '".$lastmsg."' 

+0

數據被檢索和顯示,我的第一個默認帖子再次顯示,當我點擊更多! – getaway 2010-09-21 13:27:00

+0

是不是總是由查詢返回的第一篇文章?這是真的不清楚你想要做什麼。請記住,我們不知道您的模式意味着什麼。 – Pointy 2010-09-21 13:31:52

+0

它完全像twitter一樣,當你加載更多的更新時,當你點擊更多時,你可以期望再次看到相同的狀態消息! – getaway 2010-09-21 13:35:07