Коротко о задаче - проблема в том что я не могу решить как написать алгоритм чтобы все значения что приходят сортировались так как надо и правильно.
И так- у меня есть форма SELECT в ней уже я сортирую как мне надо статьи.
,
Опций принимают значение из таблицы,строка ORDER=INT и по нему выстраиваются потом через JS я их сортирую и отсылаю обратно.
Вот тут и проблема - я не никак не могу додуматься как же мне внести все изменения в БД так чтоб они соответствовали выбранной мной сортировки.
Спустя 9 минут, 48 секунд (9.07.2009 - 19:10) anonymouse написал(а):
Хотя наверное я прогнал - почитаю этот линк может что-то да пригодится _http://docs.com.ru/algoritm_1.php
Хотя там сортировка просто массивов... Если у кого есть идей - плз!!!
Хотя там сортировка просто массивов... Если у кого есть идей - плз!!!
Спустя 20 минут, 23 секунды (9.07.2009 - 19:31) kirik написал(а):
Если я все верно понял, то после получения данных от юзера тебе нужно переписать то поле, по которому сортируешь нужными значениями?
Спустя 2 минуты, 53 секунды (9.07.2009 - 19:33) anonymouse написал(а):
Ну это не от юсера - но да ты прав - я получил поля в нужной мне сортировке - и теперь их нужно пересортировать.
Спустя 2 часа, 4 минуты, 55 секунд (9.07.2009 - 21:38) sergeiss написал(а):
Цитата (anonymouse @ 9.07.2009 - 20:00) |
Вот тут и проблема - я не никак не могу додуматься как же мне внести все изменения в БД так чтоб они соответствовали выбранной мной сортировки. |
Ответ простой и незамысловатый: никак!

Причина прстая - что любая сортировка делается при выборе данных из БД.
Спустя 26 минут, 39 секунд (9.07.2009 - 22:05) anonymouse написал(а):
Цитата (sergeiss @ 9.07.2009 - 18:38) | ||
Ответ простой и незамысловатый: никак! ![]() Причина прстая - что любая сортировка делается при выборе данных из БД. |
А вот тут я с тобой не соглашусь - кажется я нашел способ - пока что его расписал на бумаге - как переведу в код и проверю дам знать.

Спустя 1 час, 7 минут, 28 секунд (9.07.2009 - 23:13) sergeiss написал(а):
Забудь про этот "способ". Данные внутри БД могут быть записаны в произвольном порядке. В частности, если ты что-то изменишь в записи, то она может стать последней.
И единственной возможностью реальной сортировки будет только сортировка при выборке данные, но не при записи.
И единственной возможностью реальной сортировки будет только сортировка при выборке данные, но не при записи.
Спустя 5 часов, 42 минуты, 15 секунд (10.07.2009 - 04:55) anonymouse написал(а):
Цитата (sergeiss @ 9.07.2009 - 20:13) |
Забудь про этот "способ". Данные внутри БД могут быть записаны в произвольном порядке. В частности, если ты что-то изменишь в записи, то она может стать последней. И единственной возможностью реальной сортировки будет только сортировка при выборке данные, но не при записи. |
Так я и не понял что ты имел введу - скажу так - НА ЗЛО ВРАГАМ Я ЭТО СДЕЛАЛ !!!
И так - я получаю какой-то массив через пост с новой сортировкой.
Что я делаю ? я делаю что-то в роди дампа всех строк что у меня уже есть -
Потом беру ORDER из полученного массива $_POST и ищу его в ДАМПЕ - беру его ID
и обновляю ORDER за счет прохода WHILE ($I) - ведь $i можно считать сортировщиком.
и так до тех пор пока не закончиться массив $_POST;
И так момент истины !!!
КОДЕ
PHP |
if(isset($_POST['id_set'])) |
Спустя 32 минуты, 30 секунд (10.07.2009 - 05:27) kirik написал(а):
anonymouse
Все верно сделал. Только вот лишние циклы есть. Для пересортировки вполне пойдет такой код:
Все верно сделал. Только вот лишние циклы есть. Для пересортировки вполне пойдет такой код:
PHP |
if(!empty($_POST['id_set'])) |
Можно сделать, чтобы избежать лишних UPDATE запросов так:
PHP |
function get_numeric($array) |
вродь так, не проверял..
Спустя 2 часа, 49 минут, 10 секунд (10.07.2009 - 08:16) sergeiss написал(а):
kirik - может быть, хотя бы ты мне объяснишь, зачем заниматься таким извратом? Или, может быть, лучше объяснить человеку, что он фигнёй занимается, и пудрит мозХ нам тут, и пусть лучше потратит своё время на изучение того, что действительно имеет смысл???????????????????
Цитата (anonymouse @ 10.07.2009 - 05:55) |
Так я и не понял что ты имел ввиду - скажу так - НА ЗЛО ВРАГАМ Я ЭТО СДЕЛАЛ !!! |
Объясняю. Ты хочешь
Цитата (anonymouse @ 9.07.2009 - 20:00) |
додуматься как же мне внести все изменения в БД так чтоб они соответствовали выбранной мной сортировки |
А я тебе пытаюсь объяснить, что любая сортировка должна делаться не на этапе записи, а на этапе выборки данных. Для ускорения процесса выборки данных существует такое понятие, как ИНДЕКСЫ.
Спустя 1 час, 23 минуты, 16 секунд (10.07.2009 - 09:40) kirik написал(а):
sergeiss
Тут дело вот в чем (на сколько я понял). Допустим у нас есть 5 новостей:
Тут дело вот в чем (на сколько я понял). Допустим у нас есть 5 новостей:
Код |
позиция 1 - новость 1 позиция 2 - новость 2 позиция 3 - новость 3 позиция 4 - новость 4 позиция 5 - новость 5 |
и нам нужно переставить новости местами, чтобы получилось так:
Код |
позиция 1 - новость 3 позиция 2 - новость 2 позиция 3 - новость 4 позиция 4 - новость 1 позиция 5 - новость 5 |
Для этого нужно отдельное поле с позицией, по которому будем сортировать при выводе, а в него вносим позицию элемента в списке.
Спустя 2 часа, 19 минут, 36 секунд (10.07.2009 - 11:59) anonymouse написал(а):
kirik
Можно вопрос ? сколько ты потратил время на это ?
Я вот сегодня проторчал до 5 утра... сделал и лег спать... 12 дня я на ногах.
Просто интересно )
Я не знаю что ты использовал - а я просто вспомнил увидев примеры что есть сортировки по другим массивам (тобишь делаешь копию и потом уже в оригинале её обновляешь).
Кирик правильно показал - ну если он понял что я имел введу а ты нет... возможно мы просто не поняли друг друга.
Можно вопрос ? сколько ты потратил время на это ?
Я вот сегодня проторчал до 5 утра... сделал и лег спать... 12 дня я на ногах.
Просто интересно )
Я не знаю что ты использовал - а я просто вспомнил увидев примеры что есть сортировки по другим массивам (тобишь делаешь копию и потом уже в оригинале её обновляешь).
Кирик правильно показал - ну если он понял что я имел введу а ты нет... возможно мы просто не поняли друг друга.
Спустя 4 часа, 12 минут, 46 секунд (10.07.2009 - 16:12) kirik написал(а):
Цитата (anonymouse @ 10.07.2009 - 03:59) |
сколько ты потратил время на это ? |
не много

Цитата (anonymouse @ 10.07.2009 - 03:59) |
Я не знаю что ты использовал |
Силу эфира вселенной

_____________