在PHP中从MySQL获取最后7行

在PHP中从MySQL获取最后7行,php,mysql,Php,Mysql,我试图从用户输入记录的表中获取最后7条记录 我的问题是: $database->setQuery("SELECT * FROM #__mytable WHERE (user_id = '$uid')"); $dberr=""; if (!$database->query()) { $dberr = $database->getErrorMsg(); } if(!$dberr==""){ echo($dberr."<br>"); }else{ $

我试图从用户输入记录的表中获取最后7条记录

我的问题是:

$database->setQuery("SELECT * FROM #__mytable WHERE (user_id = '$uid')");
$dberr="";
if (!$database->query()) {
    $dberr = $database->getErrorMsg();
}

if(!$dberr==""){
   echo($dberr."<br>");
}else{
   $rows = $database->loadObjectList();
我如何循环通过$行获得最后7行

SELECT  *
FROM    #__mytable
WHERE  user_id = '$uid'
ORDER BY
       entered_date DESC
LIMIT 7
要按升序获取它们,请使用:

SELECT  *
FROM    (
        SELECT  *
        FROM    #__mytable
        WHERE  user_id = '$uid'
        ORDER BY
               entered_date DESC
        LIMIT 7
        ) q
ORDER BY
        entered_date
要按升序获取它们,请使用:

SELECT  *
FROM    (
        SELECT  *
        FROM    #__mytable
        WHERE  user_id = '$uid'
        ORDER BY
               entered_date DESC
        LIMIT 7
        ) q
ORDER BY
        entered_date
你不会:

SELECT * FROM ... WHERE ... ORDER BY user_id DESC LIMIT 7
你不会:

SELECT * FROM ... WHERE ... ORDER BY user_id DESC LIMIT 7

为什么要按用户id对资源进行排序?我假设用户id是递增的和唯一的,因此可以作为整个表的默认集群顺序。您必须按键排序,否则结果将不可预测,并且会因平台/数据库引擎/库版本/月球阶段的不同而差异很大。@mst:user\u id在原始查询中被过滤。这很好。您可以按其他键排序,或按WHERE条件中使用的键排序,或按SELECT语句中省略的键字段排序。但要获得最后七个键,按用户id排序没有意义。为什么按用户id排序资源?我假设用户id是递增的和唯一的,因此,它可以作为整个表的默认集群顺序。您必须按键排序,否则结果将不可预测,并且会因平台/数据库引擎/库版本/月球阶段的不同而差异很大。@mst:user\u id在原始查询中被过滤。这很好。您可以按其他键排序,也可以按WHERE条件中使用的键排序,也可以按SELECT语句中省略的键字段排序。但是要得到最后七个键,按用户id排序是没有意义的。我接受了其中一个答案,但是我确实希望答案包括PHP代码,您不需要对PHP代码进行任何修改就可以达到所描述的效果。只需在setQuery参数中替换SQL查询。我接受了其中一个答案,但我确实希望答案包含PHP代码。您不需要对PHP代码进行任何修改即可实现所描述的效果。只需在setQuery参数中替换SQL查询。