нумерация страниц в простой - PullRequest
1 голос
/ 07 января 2011

я пробовал смещение в simpledb, но оно не работает, как и в mysql, и я хочу сделать пейджинг для моей базы данных API в php, чтобы я отправил pagenumber и pagelength в запрос, и он вернет данные этоготолько страницаКак это можно сделать в simpledb.

    select * from second 
where time_stamp is not null and gibid = '54' and gibview = 'O' 
order by time_stamp asc limit $pagelength 

, так как смещение не работает, поэтому я не могу добавить смещение в запросе.У меня есть Google, и я обнаружил, что следующий токен возвращен, но я не получаю следующий токен.как проверить наличие следующего токена.

Пожалуйста, помогите.

Спасибо

Ответы [ 4 ]

3 голосов
/ 06 мая 2011

Согласно команде Simpledb (этот вопрос задавался на их форумах), использование следующего токена - способ сделать это.

Если вы хотите взять, скажем, 2500-2600-й элемент из списка, а не повторять первые 2500, команда simpledb рекомендует выполнить подсчет (*) до 2500, потому что это быстро, а затем захватывает следующий токен из этого результата, а затем введите свой реальный запрос, чтобы получить имена и атрибуты.

Хитрый взлом к ​​тому факту, что предел не требует начального индекса, как я думал, но должен спасти вам некоторую производительность. Просто хотел поделиться этим.

1 голос
/ 08 января 2011

Готово, используя NextToken в простом дБ

$files = $this->db->select($domain, $query, $offset)

Здесь $ offset - следующая строка, которая будет передана в запросе. и вернется на следующую страницу.

1 голос
/ 07 января 2011

$ длина страницы должна быть:

$pagenum = 4; //current page
$numitems = 20; //items per page
$row_from = $pagenum * $numitems - $numitems;
$pagelenght = $row_from.','.$numitems; 


in the end pagelenght should look like this
$pagelenght = '0,20'; //first page
$pagelenght = '20,20'; //second page
$pagelenght = '40,20'; //third page
$pagelenght = 60,20'; //forth page

что-то вроде этого, первое число из какой строки, а второе число, сколько элементов на одной странице.

0 голосов
/ 18 января 2011

Я подтверждаю, что LIMIT в SimpleDB принимает только один аргумент.

Чтобы быть уверенным, я пробовал следующий запрос (домен Person существует): «SELECT * FROM Person LIMIT 20, 20», и у меня былоследующий ответ: Ошибка клиента: указанный синтаксис выражения запроса недопустим.

Даже если ограничение не указано, SimpleDB применяет ограничение по умолчанию 100, максимальное ограничение составляет 2500 строк.Я хочу подчеркнуть, что LIMIT работает не так, как другие базы данных.LIMIT 100 означает, что вы будете получать 100 результатов за раз, и вы получите еще одну партию из 100 результатов со следующим токеном (при условии, что данных, конечно, достаточно).

Способ разбивки на страницыэто использование токенов.Уже полученный токен может быть сохранен в сеансе, поэтому можно будет вернуться на предыдущие страницы.

...