Получение последнего элемента из Drupal db_fetch_object - PullRequest
0 голосов
/ 03 марта 2011

Какой лучший способ сделать это?Я возвращаюсь к выполнению цикла while () для результата и извлекаю последний, как это происходит, но это кажется немного неуместным.D7 предлагает некоторую помощь здесь, но есть ли какой-нибудь совет для D6?Спасибо!

Ответы [ 3 ]

2 голосов
/ 03 марта 2011

Почему бы не изменить порядок запроса и не ограничиться 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 голос
/ 03 марта 2011

В общем случае (без наконечников двигателя, как для 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));
0 голосов
/ 04 марта 2011

Попробуйте использовать db_last_insert_id ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...