我正在使用PHP创建类似Twitter的帖子流。如果用户只想查看他创建的帖子,应该如何编写mysql查询?mysql_query只显示用户的帖子
这是我现在有:mysql_query("SELECT * FROM timeline ORDER BY dt DESC");
我认为我需要时间线后添加WHERE
指示用户,但不知道正确的代码是什么。会不会是WHERE $_SESSION['username']
?
我正在使用PHP创建类似Twitter的帖子流。如果用户只想查看他创建的帖子,应该如何编写mysql查询?mysql_query只显示用户的帖子
这是我现在有:mysql_query("SELECT * FROM timeline ORDER BY dt DESC");
我认为我需要时间线后添加WHERE
指示用户,但不知道正确的代码是什么。会不会是WHERE $_SESSION['username']
?
你说得对。
观看$ _SESSION ['username']的内容。你真的应该先逃跑吧:
$usr = mysql_real_escape_string($_SESSION['username']);
然后
mysql_query("SELECT * FROM timeline WHERE username = '$usr' ORDER BY dt DESC ");
我不知道你的用户名字段被调用,这样的替代品。
注:mysql
已被弃用 - 使用库MySQLi或PDO
非常好,谢谢!我实际上只是调用了该字段的用户名。:)它不会给我错误,但它也不会拉动任何用户的帖子。猜测它没有识别会话的用户名,并且我做了错误的事情,不正确地设置会话以传递当前用户名。任何建议我检查会话设置? –
使用'if(!isset($ _ SESSION ['username']){echo'在会话中没有用户名';}'检查用户名或'var_dump($ _ SESSION)'查看所有。在你提交它之前('$ query =“SELECT ...”'),然后在你的'mysql_query($ query);'之前加上'echo $ query;'这会告诉你你的查询是什么 – 2013-06-27 03:31:31
啊,刚刚得到它!谢谢! –
虽然我不建议这一点,它应该工作:
SELECT *
FROM timeline
WHERE user = '" . $_SESSION['username'] . "'
ORDER BY dt DESC
我会建议使用paramaterized查询和使用PDO,而不是!
谢谢,我试图教我自己的PHP,所以感谢你的警告,但没有恐惧,只是试验,没有任何活动:) –
它不给我任何错误,但它也没有拉任何用户的帖子。猜猜它不认识会话的用户名。任何想法如何设置会话用户拉他的帖子? –
@JeffCloud - 什么值'SESSION ['username']'相等吗?该值是否存在于您的时间表中? – user2480596
请问您可以在问题中添加'timeline'表结构吗? – BlitZ