Вопрос про "выше,ниже"

Benderlio

Новичок
Вопрос про "выше,ниже"

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

akd

dive now, work later
Команда форума
Benderlio, самое простое - менять значения местами.
 

kruglov

Новичок
Правильно, это не выше ниже, а перенести туда-то (в начало, под нужный элемент)

Посмотрю я, как вы будете сортировать список на полсотни элементов, кликая выше-ниже.
 

Benderlio

Новичок
ну в том то и дело что список не такой уж большой
около 10 значений всего
 

akd

dive now, work later
Команда форума
Benderlio, тебя никто не заставляет писать правильно, делай через ж..., если так хочется :)
 

Benderlio

Новичок
akd
да уже сделал как ты посоветовал...
премного благодарен :)

-~{}~ 14.02.07 11:44:

Автор оригинала: kruglov
Правильно, это не выше ниже, а перенести туда-то (в начало, под нужный элемент)

Посмотрю я, как вы будете сортировать список на полсотни элементов, кликая выше-ниже.
мда, вот и настал момент когда это мне понадобилось...

как это реализовать? можно пример...
потому как я вижу это на данный момент то прийдеться передергивать всю таблицу, если необходимо вставить запись между записями с номерами 1 и 2 например, то все последующие номера прийдеться увеличить
или как ? разъясните плиз
 

Benderlio

Новичок
baev
здорово...
мне кажеться что так получаемое число будет достаточно велико (количество символов) через несколько итераций... как это скажется на скорости сортировки по полю с такими числами ?
 

AmdY

Пью пиво
Команда форума
Benderlio, baev шутил. придётся передёргивать, благо можно сделать одним запросом.
 

Benderlio

Новичок
AmdY
а как именно?
т.е. сортировать в массиве а потом проапдейтить нужные поля ?
или как ? может есть пример :)
 

AmdY

Пью пиво
Команда форума
т.е. сортировать в массиве а потом проапдейтить нужные поля ?
- можно и так.
Можно, что-то вроде UPDATE `table` SET `sort`=`sort`+1 WHERE `sort`>1
Можно посмотреть готовые решения, не хочется посылать в google.com , но может у самого появится желание посмотреть.
 

noindex

Новичок
Benderlio
Двинуть запись наверх:
PHP:
//Узнаем id записи, выше которой будем поднимать
$query1 = "SELECT id, my_order FROM club WHERE my_order > '$order' ORDER BY my_order ASC limit 1";
$result1 = mysql_query($query1);
while ($row = mysql_fetch_array($result1))
	{
	$r_id = $row["id"];
	$r_order = $row["my_order"];
    }

//Апдейтим запись которая уйдет вниз
$query2 = "UPDATE club SET my_order = '$order' WHERE id = '$r_id'";
$query3 = "UPDATE club SET my_order = '$r_order' WHERE id = '$id'";
$result2 = mysql_query($query2);
$result3 = mysql_query($query3);
Вниз:
PHP:
//Узнаем id записи, выше которой будем поднимать
$query1 = "SELECT id, my_order FROM club WHERE my_order < '$order' ORDER BY my_order DESC limit 1";
$result1 = mysql_query($query1);
while ($row = mysql_fetch_array($result1))
	{
	$r_id = $row["id"];
	$r_order = $row["my_order"];
    }

//Апдейтим запись которая уйдет вниз
$query2 = "UPDATE club SET my_order = '$order' WHERE id = '$r_id'";
$query3 = "UPDATE club SET my_order = '$r_order' WHERE id = '$id'";
$result2 = mysql_query($query2);
$result3 = mysql_query($query3);
 

Alexander Coral

Новичок
А можно было посмотреть на десяток готовых решений - в каждом движке форума есть сортировка подфорумов.
 

kruglov

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

Alexander Coral

Новичок
Автор оригинала: kruglov
Ну неужели неинтересно самостоятельно придумать алгоритм?
Почему обязательно надо просить или искать готовые решения?
Все-таки это не решение волновых уравнений методом прогонки, а элементарная задача "здесь сложить, здесь вычесть"
Придумывать свое всегда интересно. Придумал, посмотрел как у других и выбрал наиболее подходящий вариант.
 
Сверху