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吗?顺便说一句,我认为你的问题标题与你的实际要求和需要无关。