Я передаю три параметра по адресу: &p1=eventID
, &p2=firstItem
, &p3=numberOfItems
. Первый параметр - столбец таблицы. второй параметр - это первый элемент, который я ищу. Третий параметр указывает, сколько предметов после firstItem
.SQL, как выбрать часть списка элементов через предложения SELECT, WHERE?
например, в первом запросе пользователя отправить &p1=1
, &p2=0
, &p3=20
. Поэтому мне нужно сначала 20 пунктов списка. В следующий раз, если пользователь отправит &p1=1
, &p2=21
, &p3=20
, тогда я должен передать второй 20 пунктов (из пункта 21 в пункт 41).
PHP-файл может получать параметры. В настоящее время я использую следующую строку для запроса в базу данных:
public function getPlaceList($eventId, $firstItem, $numberOfItems) {
$records = array();
$query = "select * from {$this->TB_ACT_PLACES} where eventid={$eventId}";
...
}
Результат - это длинный список предметов. Если я добавлю LIMIT 20 в конце строки, то, поскольку я не использую токен, результат всегда будет таким же.
Как изменить запрос таким образом, который соответствует моим требованиям? любое предложение будет оценено по достоинству. Благодаря
=>обновление: я могу получить весь список элементов, а затем выбрать из моего первого пункта к последнему пункту с помощью for(;;)
цикла. Но я хочу знать, можно ли делать подобное через sql? Думаю, этот способ более эффективный.
возможно дубликат http://stackoverflow.com/questions/11728704/use-limit-to-paginate-results-in-mysql-query – DragonZero
Спасибо, я просто посмотрел, но я думаю, что это решение основано на разбиении на страницы, что я его не использую. – Hesam
ahh, gotcha, см. Эту ссылку, инструкции по использованию второго аргумента с ключевым словом limit. http://stackoverflow.com/questions/15950871/select-all-records-using-mysql-limit-and-offset-query – DragonZero