Php 我想让MySQL中的两个表的数据按日期排序

Php 我想让MySQL中的两个表的数据按日期排序,php,mysql,Php,Mysql,我想从MySQL中的两个表中获取数据,按日期排序 $sql = " SELECT items.*, invoice.* FROM items JOIN invoice ON items.user_id = invoice.buyer_id WHERE items.user_id = '$user_id'" LIMIT 10 ORDER BY date; "; 尝试: $sql = "SELECT *"; $sql

我想从MySQL中的两个表中获取数据,按日期排序

$sql = "
SELECT 
    items.*, invoice.* 
FROM 
    items 
JOIN 
    invoice 
ON 
    items.user_id = invoice.buyer_id 
WHERE 
    items.user_id = '$user_id'" 
LIMIT 
    10 
ORDER BY 
    date;
";
尝试:

$sql = "SELECT *";
$sql .= " FROM items, invoice";
$sql .= " WHERE items.user_id = invoice.buyer_id";
$sql .= " AND items.user_id = '$user_id'";
$sql .= " ORDER BY date DESC";
$sql .= " LIMIT 10";

另外,最好将其用作准备好的语句,而不是将变量放在SQL查询中,以避免SQL注入。

问题是什么
limit 10 order by date
可能引发PHP语法错误,应该在双引号内。此外,您在该位中的顺序不正确,
限制应为最后一位。我们很乐意帮助和支持新的编码器,但您需要首先帮助自己。:-)如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。一定要仔细阅读。你能澄清问题出在哪里吗?试着解释问题出在哪里。您是否收到错误消息?排序顺序错了吗?没有记录?您在一个奇怪的地方有一个引号,并且限制不能在订单之前。除此之外,我不知道你在追求什么。另外,最好使用预先准备好的语句,以避免SQL语句为什么要使用所有的
=
东西。这个错误是额外的
。连接是一种在sql语句中不包含太多空格的方法,因此sql语句保持干净。这样做不是必须的。如果没有它们,并且所有的代码都在同一个字符串中,那么它们也必须工作。当人们编辑这段充满语法的代码时,服务器进程并不关心空格。所有这些都是关于优先级的,但是想象一下你打印$SQLVAR的内容,这样会更干净。但是,是的,我同意你的观点,这都是关于优先级的。如果你检查user_id是一个整数,你就不能在这个选择中添加任何奇怪的内容,这就是sanitize的意思,代码也不会受到sql注入的攻击。然而,我刚刚编辑了答案,说最好使用事先准备好的语句。