2013-06-27 60 views
0

我正在使用PHP创建类似Twitter的帖子流。如果用户只想查看他创建的帖子,应该如何编写mysql查询?mysql_query只显示用户的帖子

这是我现在有:mysql_query("SELECT * FROM timeline ORDER BY dt DESC");

我认为我需要时间线后添加WHERE指示用户,但不知道正确的代码是什么。会不会是WHERE $_SESSION['username']

+0

请问您可以在问题中添加'timeline'表结构吗? – BlitZ

回答

0

你说得对。

观看$ _SESSION ['username']的内容。你真的应该先逃跑吧:

$usr = mysql_real_escape_string($_SESSION['username']); 

然后

mysql_query("SELECT * FROM timeline WHERE username = '$usr' ORDER BY dt DESC "); 

我不知道你的用户名字段被调用,这样的替代品。

注:mysql已被弃用 - 使用库MySQLi或PDO

+0

非常好,谢谢!我实际上只是调用了该字段的用户名。:)它不会给我错误,但它也不会拉动任何用户的帖子。猜测它没​​有识别会话的用户名,并且我做了错误的事情,不正确地设置会话以传递当前用户名。任何建议我检查会话设置? –

+0

使用'if(!isset($ _ SESSION ['username']){echo'在会话中没有用户名';}'检查用户名或'var_dump($ _ SESSION)'查看所有。在你提交它之前('$ query =“SELECT ...”'),然后在你的'mysql_query($ query);'之前加上'echo $ query;'这会告诉你你的查询是什么 – 2013-06-27 03:31:31

+0

啊,刚刚得到它!谢谢! –

0

虽然我不建议这一点,它应该工作:

SELECT * 
FROM timeline 
WHERE user = '" . $_SESSION['username'] . "' 
ORDER BY dt DESC 

我会建议使用paramaterized查询和使用PDO,而不是!

+0

谢谢,我试图教我自己的PHP,所以感谢你的警告,但没有恐惧,只是试验,没有任何活动:) –

+0

它不给我任何错误,但它也没有拉任何用户的帖子。猜猜它不认识会话的用户名。任何想法如何设置会话用户拉他的帖子? –

+0

@JeffCloud - 什么值'SESSION ['username']'相等吗?该值是否存在于您的时间表中? – user2480596