从Drupal db_fetch_object获取最后一项

时间:2011-03-03 01:15:52

标签: drupal

最好的方法是什么?我一直在回过头来对结果做一个while()循环并且随着时间的推移抓住最后一个,但这似乎有点,嗯,不优雅。 D7在这里提供了一些帮助,但D6有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:2)

为什么不颠倒查询的顺序并将其限制为1并得到它?

类似的东西:

$result = db_query_range("SELECT * FROM {table} ORDER BY field DESC", 0, 1);

http://api.drupal.org/api/drupal/includes--database.mysql.inc/function/db_query_range/6

答案 1 :(得分:1)

一般情况下(没有类似于mysql的引擎提示),请使用:

$query = 'SELECT nid, title from {node} WHERE type="page"';
$query_count = 'SELECT count(*) from {node} WHERE type="page"';
$count = db_result(db_query($query_count)); // $query_count
$last_record = db_fetch_object(db_query_range($query, $count-1, 1));

如果查询使用排序,只需使用“反订单”:

$query = 'SELECT nid, title from {node} WHERE type="page" ORDER BY nid ASC';
// ...
$counterquery = 'SELECT nid, title from {node} WHERE type="page" ORDER BY nid DESC LIMIT 0,1';
$last_record = db_fetch_object(db_query($counterquery));

答案 2 :(得分:0)

尝试使用db_last_insert_id()