Вывод информации в моем порядке (ТОП)

Tvis2010

Новичок
Мне надо сделать на подобии топа допустим юзеров
Но табл заполняется ручками без всяких приспособ (20 юзеров) инфа простая: место, имя, текст, год рождения.
вывожу я ее по сортировке ID то есть по порядку добавления. (автозаполение) - тут возможно придумать что то иное.
Приблизительный табл
1/ иван/ я такой/ 94
2/ игорь/ я не такой/ 95
3/ андрей/ все такие/ 94
4/ егор/ привет мир/ 93
и так далее...

возникает вопрос, как мне допустим егора поднять на 2 место?
чтобы было следующее:
1/ иван/ я такой/ 94
2/ егор/ привет мир/ 93
3/ игорь/ я не такой/ 95
4/ андрей/ все такие/ 94

ну а так же наоборот ивана переместить на 3 место
Как то так:
1/ егор/ привет мир/ 93
2/ игорь/ я не такой/ 95
3/ иван/ я такой/ 94
4/ андрей/ все такие/ 94

Как быть вобще? запись в бд идет ручками тк. это статическая информация которая редактироватся будет раз в месяц кримеру
Может быть отказаться от базы? и хранить эту информацию как то по другому? в .txt к примеру или еще как то чтобы мне было проще передернуть пользователя на другое место..
Чистый Html вариант отпадает, потому что Разметка выходит просто огромной для 1 чеговека. ибо выше это пример..
Использую Laravel (Может кому надо)
Вывожу инфу на страничку через for массива из бд.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Как определишься с критериями сортировки - приходи назад, обсудим.

PS: Можешь ввести специальное поле под сортировку
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ответь мне на вопрос, что есть "топ" в твоем понимании?
 

Tvis2010

Новичок
Ответь мне на вопрос, что есть "топ" в твоем понимании?
Топ в моем понимании это список, допустим пользователей Которые сделали что то хорошее. (Это все примеры)
И он будет так сказать в доске почета. я ему присваиваю Ивану Первое место. и он как лидер. в ТОП 1
Егор например был на 4 месте. Но он сделал много хороших дел, и я хочу ему приручить 2 место в Топе.
Так надеюсь ясно изъяснил?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Tvis2010, нет. Хреново ты объяснил. Но ты сам сказал, что ты будешь их сортировать по какому-то признаку (числу хороших дел)

Вот теперь тебе надо сделать так, чтобы это число хороших дел каждого отдельного человека писалось рядом с его именем и идентификатором в соседнее поле, после чего твой "топ" будет готов.
 

Tvis2010

Новичок
@Tvis2010, нет. Хреново ты объяснил. Но ты сам сказал, что ты будешь их сортировать по какому-то признаку (числу хороших дел)

Вот теперь тебе надо сделать так, чтобы это число хороших дел каждого отдельного человека писалось рядом с его именем и идентификатором в соседнее поле, после чего твой "топ" будет готов.
Не совсем, я это понимаю допустим раскинул я им хорошие дела, НО... как мне поднять человека по своему желанию? допустим на место 2?
Как вы говорите возможно люди сделают одинаковое количество дел. так их будет сортировать уже по другому! не так, как я хочу.
 

Tvis2010

Новичок
@c0dex, Хорошо давайте сделаем так представим людей в виде списка. которые идут в порядке возрастания. я хочу строку с |Каким то| пользователем перенести на вторую строку.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Tvis2010, Да сделай ты уже им поле с сортировочным идентификатором! И меняй его как тебе надо: 2>3, 3>2, считай поменял местами двух людей.
 

Tvis2010

Новичок
@Tvis2010, Да сделай ты уже им поле с сортировочным идентификатором! И меняй его как тебе надо: 2>3, 3>2, считай поменял местами двух людей.
Вы не понимаете.. менять местами это одно!, а поднять человека на какое то место, да так чтобы прошлый человек продвинулся по списку вниз это другое...
Возмем маленький пример
1 Огурец
2 Банан
3 Помидор
4 Киви
5 Апельсин
6 Мандарин
7 Перец

Вот хочу я перец поставить на 3 место да так, чтобы Помидор который был на 3 месте стал 4тым! Киви стало 5тым и т.д.
Не Прописывать же мне их места каждому заного как вы сказали...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Tvis2010, это ты не понимаешь, это одно и то же. Все у тебя будет зависеть только от сортировки. В обычном списке - по id, в топе - по сервисному полю, которое ты сам будешь менять, чтобы двигать в топе людей.
 

Tvis2010

Новичок
@Tvis2010, это ты не понимаешь, это одно и то же. Все у тебя будет зависеть только от сортировки. В обычном списке - по id, в топе - по сервисному полю, которое ты сам будешь менять, чтобы двигать в топе людей.
Ну вот я поле вам выше сделал. что это меняет?
Опишу вам бооооолее подробнее.
ИД:Имя:Место
1 Огурец 1
2 Банан 2
3 Помидор 3
4 Киви 4
5 Апельсин 5
6 Мандарин 6
7 Перец 7
Хочу сделать так, поднять перец на 2 место! Да так чтобы тот который был на этом месте сьехал вниз вместе с последующими вот так:
ИД:Имя:Место
1 Огурец 1
7 Перец 2
2 Банан 3
3 Помидор 4
4 Киви 5
5 Апельсин 6
6 Мандарин 7

Надеюсь хоть Вот в таком наглядном примере вы поняли?
Для вас отдельно скажу: сортирую по полю МЕСТО
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Опишу тебе еще один раз

У тебя будет в твоем примере три поля:
id | Name | top_order_id

В первое ты пишешь автоинкрементный идентификатор, второе под имя, третье по-умолчанию равно полю id. Но если тебе надо поменять местами каких-то людей, то ты меняешь данные в top_order_id и сортируешь по нему для построения топа.

Перцу ту даешь номер 2 по top_order_id, далее всему, что было после номера два, после перца (включительно) ты можешь изменить top_order_id на top_order_id=top_order_id+1, тогда у тебя перец переедт на место номер два, а остальное уедет на 1 позицию вниз. То есть банан станет с номером 3 и так далее
 

Tvis2010

Новичок
Опишу тебе еще один раз

У тебя будет в твоем примере три поля:
id | Name | top_order_id

В первое ты пишешь автоинкрементный идентификатор, второе под имя, третье по-умолчанию равно полю id. Но если тебе надо поменять местами каких-то людей, то ты меняешь данные в top_order_id и сортируешь по нему для построения топа.

Перцу ту даешь номер 2 по top_order_id, далее всему, что было после номера два, после перца (включительно) ты можешь изменить top_order_id на top_order_id=top_order_id+1, тогда у тебя перец переедт на место номер два, а остальное уедет на 1 позицию вниз. То есть банан станет с номером 3 и так далее
А вот теперь кодом пожалуйста, я это и так знал но как это реализовать чтобы в последующем не получить кашу в бд...
Ведь по топу будут продвигаться не только вверх но и вниз тоже!
ибо Банан может уехать в последнее место, а его место должен занять тот кто был после него.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну если ты знал, как реализовать - то кодом помогать тебе и не надо было.
 
Сверху