[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбор значений из базы
Страницы: 1, 2
braindbrigada
Есть огромная база id в которой AI и имеет значения: 1,2,3,4,5,9,10,11,33...

Вот пример запроса:

$sum = 3; // берем из базы
$str = (int)$_GET['p']; // номер страницы
$start = $str * $sum; // стартуем от

mysql_query("SELECT name FROM users WHERE id>=$start ORDER BY id DESC LIMIT $start,$sum");

Если $str = 1 - все хорошо
Если $str = 2 - выбрали 4,5, а 9 нет!
Если $str = 3 - пустая страница!

Как решить?
Valick
braindbrigada, вы полагаете, что достаточно внятно описали задачу?


_____________
Стимулятор ~yoomoney - 41001303250491
braindbrigada
Valick, что непонятно?
killer8080
"SELECT name FROM users WHERE id>=$start ORDER BY id DESC LIMIT $sum"
braindbrigada
killer8080, что мы получем?

Цитата
1,2,3,4,5,9,10,11,33


Получем тоже

Если $str = 1 - все хорошо
Если $str = 2 - выбрали 4,5, а 9 нет!
Если $str = 3 - пустая страница!
killer8080
Цитата (braindbrigada @ 11.08.2013 - 10:35)
killer8080, что мы получем?

а что должны получить?
braindbrigada
Цитата
а что должны получить?


Если $str = 1 - 1,2,3
Если $str = 2 - 4,5,9
Если $str = 3 - 10,11,33

Но как? Мой запрос как пример - это не подходит из-за того, что id может быть больше чем $start

Пробовал так, но это тоже неправильно
mysql_query("SELECT name FROM users WHERE id>=$start AND id<=$start+$sum ORDER BY id DESC LIMIT $sum");
killer8080
"SELECT name FROM users  ORDER BY id ASC  LIMIT $start,$sum"




Спустя 4 минуты, 17 секунд killer8080 написал(а):
$start = ($str - 1) * $sum;
braindbrigada
killer8080, почти аналогично


mysql_query("SELECT name FROM users WHERE id>=$start AND id<=$start+$sum ORDER BY id DESC LIMIT $sum");
killer8080
braindbrigada
зачем ты там условия вставляешь? Постраничка делается через лимит.
braindbrigada
Цитата
$start = ($str - 1) * $sum;

Это зачем?

И сортировка DESC
killer8080
Цитата (braindbrigada @ 11.08.2013 - 10:51)
Это зачем?

затем что для первой страницы офсет = 0, для второй (в твоем случае 3) и т.д
braindbrigada
Цитата
зачем ты там условия вставляешь? Постраничка делается через лимит


Со страницами все нормально, но когда получается $start < id, то страница пустая

затем что для первой страницы офсет = 0, для второй (в твоем случае 3) и т.д


Нет же код это для примера $str = 0; если нет $str = (int)$_GET['p'];
killer8080
Цитата (braindbrigada @ 11.08.2013 - 10:53)
Со страницами все нормально, но когда получается $start < id, то страница пустая

офсет в лимите не имеет никакого отношения к значениям id. В этом твоя ошибка wink.gif
braindbrigada
Цитата
офсет в лимите не имеет никакого отношения к значениям id. В этом твоя ошибка
killer8080, красава! wink.gif Спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.