2010-09-21 46 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