Mysql左连接删除程序
我有一个评论栏,用户可以在这里相互发布问题和答案 $行如下所示:Mysql左连接删除程序,mysql,Mysql,我有一个评论栏,用户可以在这里相互发布问题和答案 $行如下所示: $posts_sql = "SELECT * FROM posts LEFT JOIN users ON posts.post_by = users.user_id WHERE posts.post_topic = " . mysql_real_escape_string($_GET['id']); 这是他们在现场交谈后得到的结果: 用户1写下我能帮你做什么?。 用户2没有回答任何特殊的问题。 用户3说:好的,欢迎回来 用户1再
$posts_sql = "SELECT * FROM posts LEFT JOIN users ON posts.post_by = users.user_id WHERE posts.post_topic = " . mysql_real_escape_string($_GET['id']);
这是他们在现场交谈后得到的结果:
用户1写下我能帮你做什么?。
用户2没有回答任何特殊的问题。
用户3说:好的,欢迎回来
用户1再次回复用户2刚才给出的答案,但用户1所做的第二条评论再次直接进入顶部,跳过用户2的答案并将评论置于其上方。像这样:
用户1:我能帮你做什么?
用户1:好的,欢迎回来。
用户2:没什么特别的
我希望它是这样的:
用户1:我能帮你做什么?
用户2:没什么特别的。
用户1:好的,欢迎回来
我不知道如何删除上的左连接用户,我想这就是执行此操作的脚本
我希望它是:按post_date DESC排序,注释一条接一条,而不是移动用户名的ID来坚持它
如何更改以下代码以使其正确
$posts_sql = "SELECT * FROM posts LEFT JOIN users ON posts.post_by = users.user_id WHERE posts.post_topic = " . mysql_real_escape_string($_GET['id']);
我希望我已经说得够具体了,如果您还需要了解有关表或代码的其他信息,请告诉我。左侧的连接将用户的友好名称与消息链接在一起,以便显示信息
User 1: What can I help you with?
如果没有连接,您只能显示用户的ID
1143245: What can I help you with?`
显然不太理想。没有理由不能在where子句之后追加order by
$posts_sql = "SELECT * FROM posts LEFT JOIN users\
ON posts.post_by = users.user_id\
WHERE posts.post_topic = ".
mysql_real_escape_string($_GET['id']).
" ORDER BY post_date";
免责声明:关于防止SQL注入、URL操作、升级到mysqli的常见警告适用。但是如果你想自食其果,我不会阻止你。你不应该再使用mysql函数了,你的代码仍然不安全。如何阻止某人执行example.com/foo.php?id=posts.posts\u主题并获取数据库中的所有帖子?它可能会被转义,但您仍然容易受到SQL注入攻击。是否存储时间戳?也许你可以按时间排序。那么,如果我在表中添加一个时间戳,我如何将它插入到行中?你尝试过ORDERBY子句吗?你发布的代码中没有。为什么您认为左连接与结果的顺序有关?当您编写用户3时,您是指用户1吗?顺便说一句,我认为你的问题标题与你的实际要求和需要无关。