ФорумРазработкаБазы данных → Изменение позиции отображения при выводе из БД MySQL

Изменение позиции отображения при выводе из БД MySQL

  • unikom

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

    Spritz Окт. 11, 2008, 5:03 п.п.

    Есть таблица
    table
    *id
    *name
    *rank
    *position
    таблица выводится по с сортировкой по полю rank но если в поле position какой-то записи стоит, например, 5, то позиция должна вывестись на 5 позиций выше в общем списке.
    Вообще реально ли такое сделать средствами mysql?
  • sap

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

    Spritz Окт. 11, 2008, 5:18 п.п., спустя 14 минут 57 секунд

    В смысле, сначала вытащить ORDER BY `rank`, а потом поднять каждый элемент на столько вверх, какое значение у `position`?
    Если ASC, то ORDER BY `rank`-`position` ASC. Если DESC, ORDER BY `rank`+`position` DESC.
  • unikom

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

    Spritz Окт. 11, 2008, 5:28 п.п., спустя 9 минут 48 секунд

    Пасиб, будем пробовать. Не знал что так можно
  • unikom

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

    Spritz Окт. 12, 2008, 11:28 п.п., спустя 1 день 5 часов 59 минут

    rank увеличивается на число в поле position, проблема в том что в поле rank числа идут не подряд, у одной позиции rank может быть 130 у следующей 150, если у первой в поле position указано 5, то позиция нисколько не изменится.
  • sap

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

    Spritz Окт. 13, 2008, 2:04 п.п., спустя 14 часов 36 минут 10 секунд

    Ну тогда вытягивай ORDER BY `rank`и сортируй средствами PHP.

    А вообще, что ты такое замутное делаешь? Может, стоит пересмотреть структуру и переделать ее?
  • unikom

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

    Spritz Окт. 18, 2008, 12:43 д.п., спустя 4 дня 10 часов 38 минут

    Структура уже сформирована и по ней уже почти всё написано… Отдали доделать, пожалуй хуже задач чем доделка чужого не бывает.
    Дк вот суть в том, что есть каталог фирм. Который сортируется согласно рейтингу составленному путём голосования. Но если в подобном рейтинге какая-то фирма не хочет быть совсем в ж… то она может купить себе позиции, по 1р. 5 штук. Вот и надеялся решить это средствами мускуля, ибо в каталоге планируется уже к середине 2009ого 100 000 фирм на 40 000 посетителей в сутки, а дальше больше… может они этого и не добьются, но если да, то перебор с сортировкой в пхп просто уронит сайт.
  • sap

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

    Spritz Окт. 19, 2008, 9:24 п.п., спустя 1 день 20 часов 41 минуту

    пожалуй хуже задач чем доделка чужого не бывает

    Это да, стопудово.

    но если да, то перебор с сортировкой в пхп просто уронит сайт

    Хм… Тогда такой вопрос: содержимое этого каталога часто обновляется? Можно добавить столбец типа «позиция для выборки», сделать переборку средствами PHP, записать это все в базу, а обновлять либо по команде, либо по времени (на крон бросить), либо при покупке позиций и/или голосовании. Выборка будет влет выполняться.

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