За последние 24 часа нас посетили 18017 программистов и 1597 роботов. Сейчас ищут 947 программистов ...

правильно отсортировать записи в таблице после запроса в БД

Тема в разделе "PHP и базы данных", создана пользователем Oliver, 1 янв 2011.

  1. Oliver

    Oliver Активный пользователь

    С нами с:
    1 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    Приветствую.
    У меня есть таблица - id, sort_id, name

    id / sort_id / name

    66 / 10 / name 1
    65 / 9 / name 2
    64 / 8 / name 3
    63 / 7 / name 4
    62 / 6 / name 5
    61 / 5 / name 6
    60 / 4 / name 7
    59 / 3 / name 8
    58 / 2 / name 9
    57 / 1 / name 10

    В таблице может быть максимум 10 значений. При добавлении новой записи, самая верхняя запись (sort_id = 1) должна удаляться, а новой записи присуждается sort_id = 10, т.е все записи перемещаются на ступень пониже.
    Собственно как грамотно реализовать смещение записей? Глупо пройтись циклом по массиву как то не красиво) Возможно есть более лучший метод? Спасибо!
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    удаляешь первую запись, вставляешь новую, в заспросе дописываешь ORDER BY DESC и они сортируются в обратном порядке, еслия правильно понял
     
  3. Oliver

    Oliver Активный пользователь

    С нами с:
    1 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    понял, спасибо!
     
  4. Jampire

    Jampire Активный пользователь

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Можно попробовать так, но за результат не ручаюсь.
    [sql]DELETE FROM `table` WHERE `sort_id` = 1;
    UPDATE `table` SET `sort_id` = `sort_id` - 1;
    INSERT INTO `table` (`sort_id`, `name`) VALUES (10, 'name 1');[/sql]
     
  5. Oliver

    Oliver Активный пользователь

    С нами с:
    1 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    да, еще лучше)

    :D
     
  6. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: правильно отсортировать записи в таблице после запроса в

    Нумерация в стеке начиная с 1 обязательное условие?
    Если нет, от Update можно избавиться.
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Oliver
    если к данной задаче нет дополнительных условий, то всё делается проще.
    колонка sort_id не нужна, удаление записей не нужно, обновление - тоже.
    вставляешь новую запись, и выбираешь только последние 10 добавленных записей:
    SELECT * FROM `table` ORDER BY id DESC LIMIT 10