ФорумРазработкаБазы данных → Извращённый лимит

Извращённый лимит

  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 14:52

    Привед. Не подкините идейку. Есть некая база, выпорка по условиям ходит. К примеру Имя, фамилия, отчество, возраст, пол, ориентация. Суть задачи в чём, когда пользователь задаёт условия поиска он видит список, параметры запроса заноситься в сессию, он идёт дальше и попадает на один элемент, скажем Василий Пупкин, в списке над ним Валентина Сиськина, а под ним Иван Членов. Так вот, можно ли как-то сделать кнопки "Prev"(Валентина Сиськина) и "Next (Иван Членов)".

    К примеру имеем запрос
    SELECT * FROM users WHERE razmer_sisek > 2 OR koli4estvo_yaic > 0

    Далее имеем следующую страницу с запросом
    SELECT * FROM users WHERE id=500

    нужны соседи :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 14:55, спустя 2 минуты 46 секунд

    Josh, ты мудак?

    select * from users where id < $needid limit 1 union select * from users where id > $needid limit 1

    получишь две строки - справа и слева от твоего айди
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 15:10, спустя 14 минут 45 секунд

    Сам бля мудак не факт что id следующего больше будет, подмай про sort

    P.S. Мы - счастливое поколение: мы можем постить матом на форумах, загружать свои эротические фотки в соцсети, благодаря тому, что наши родители - динозавры и интернет для них практичски недоступен..
    А вот нашим детям не повезло..
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 15:20, спустя 10 минут 12 секунд

    Josh, тогда точно ты мудаг =))

    мне похуй на то что читают или нет мои родители пыху не поверишь, а счасливые в том что ты написал - дети до 18 лет, мы счастливые изза того, что у нас есть информационная база и мы в обих чертах имеем шанс саморазвиваться а не застревать на какты там сказал .. "мы можем постить матом на форумах, загружать свои эротические фотки в соцсети" :))

    без обид.

    просто когда производишь поиск- сохрани в сессию idшники всех найденых да и все. а дальше prev, next по массиву их :))
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 15:26, спустя 6 минут 16 секунд

    Бля ну дуд - ну не гони-ж ты так в сессию смысла хранить нету, так как я могу и запрос сделать, но сейчас в базе 12к записей, и это сайт ещё не в релизе, ты не охуел выгребать всё это без лимитов? Ок - сделали поиск - отобразили страницу 1, запхнули это всё в сессию, пошли на последний элемент. Как нахрен следующий отображать? Не гони это пиздец в массив пихать столько записей
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 15:29, спустя 2 минуты 50 секунд

    хорошо, ты в сессии имеешь условия выборки и сортировки … просто когда показываешь, выполни запрос мой который я тебе с юнионом дал + твои условия и сортировки добавь и получишь что надо :)
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 15:31, спустя 2 минуты 18 секунд

    сейчас заплачу :( я не могу знать что id шник предыдущего больше чем текщий
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 15:35, спустя 3 минуты 23 секунды


    сейчас заплачу :( я не могу знать что id шник предыдущего больше чем текщий
    ну ты чо тупишь то …. ну ты же знаешь что например его фамилия или какая у тебя там сортировка раньше идет, вот и пиши

    where name < 'василий'
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 15:39, спустя 4 минуты 14 секунд

    О - это идея. Просвятил. Спасибо. Да я мудак :)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 3 июля 2009 г. 15:42, спустя 3 минуты 29 секунд

    Josh, так ты ж сам себе ставишь условие, при котором без полной выборки не обойтись - СОРТИРОВКА ! Ведь чтоб отсортировать (по имени, размеру сисек и т.д.) нужно сначала взять список всех строк, и уже из них производить сортировку.

    Хотя можно сделать так:
    Вытаскиваешь один раз весь список, сортируешь его, после этого заносишь его в массив, ключами которого будет нормальная нумерация. И вот дальше уже по мыслям Дуда ("key > выбраного, лимит 1" + "key < выбраного, лимит 1") выбирать те АйДи из масива, которые тебе нужны, и подставлять их в запрос.
    Спустя 123 сек.
    К предыдущему, с учетом сказанного Дудом:

    Решение Дуда применимо согласно запроса Джоша, но не универсально, так как юзер может делать сортировку не по полю имени, а по двум-трем полям сразу, и тогда будет не так просто :)
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 15:48, спустя 5 минут 58 секунд

    Givi, не надо его весь вытягивать! Дуд прав на все 100 - то что мы SORT-им, по тому и делаем больше и меньше.
    Спустя 271 сек.

    Josh, так ты ж сам себе ставишь условие, при котором без полной выборки не обойтись - СОРТИРОВКА ! Ведь чтоб отсортировать (по имени, размеру сисек и т.д.) нужно сначала взять список всех строк, и уже из них производить сортировку.

    Хотя можно сделать так:
    Вытаскиваешь один раз весь список, сортируешь его, после этого заносишь его в массив, ключами которого будет нормальная нумерация. И вот дальше уже по мыслям Дуда ("key > выбраного, лимит 1" + "key < выбраного, лимит 1") выбирать те АйДи из масива, которые тебе нужны, и подставлять их в запрос.
    Спустя 123 сек.
    К предыдущему, с учетом сказанного Дудом:

    Решение Дуда применимо согласно запроса Джоша, но не универсально, так как юзер может делать сортировку не по полю имени, а по двум-трем полям сразу, и тогда будет не так просто :)
    :) А если не раздывать с мухи слона то тогда вообще всё будет просто :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 15:54, спустя 5 минут 9 секунд

    я ахуенен (с) дуд
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 16:04, спустя 10 минут 29 секунд

    Givi, Дуд а если как заметил Гиви - несколько сортировок? бгггг ахуенный наш :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 3 июля 2009 г. 16:07, спустя 2 минуты 57 секунд


    Givi, Дуд а если как заметил Гиви - несколько сортировок? бгггг ахуенный наш :D
    тогда я же говорил список отсортированных айдишников да и все. и выбираешь по ним … раздуваете тут реально из хуйни хуйнюкакую то
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 3 июля 2009 г. 17:03, спустя 55 минут 34 секунды



    Givi, Дуд а если как заметил Гиви - несколько сортировок? бгггг ахуенный наш :D
    тогда я же говорил список отсортированных айдишников да и все. и выбираешь по ним … раздуваете тут реально из хуйни хуйнюкакую то
    Золотые слова

Пожалуйста, авторизуйтесь, чтобы написать комментарий!