|
|
|
| Есть таблица article - id,id_parent, name,txt, sort
В поле сорт хранятся числа, по которым производится сортировка.
Как правильно построить запрос, чтобы, например, строку. у которой id=5 передвинуть назад?
Как я уже сказал сортировка происходит по полю sort. | |
|
|
|
|
|
|
|
для: garold
(25.05.2010 в 17:50)
| | Можно начать отталкиваться от следующего скрипта
<?php
// Извлекаем текущую позицию
$query = "SELECT sort FROM article
WHERE id = $id
LIMIT 1";
$pos = mysql_query($query);
if(mysql_num_rows($pos))
{
$sort_current = mysql_result($query, 0);
}
// Извлекаем предыдую позицию
$query = "SELECT sort FROM article
WHERE sort < $sort_current
ORDER BY sort DESC
LIMIT 1";
$pos = mysql_query($query);
if(mysql_num_rows($pos))
{
$sort_preview = mysql_result($query, 0);
// Меняем местами текущую и предыдущую позиции
$query = "UPDATE article
SET sort = $sort_current + $sort_preview - sort
WHERE sort IN ($sort_current, $sort_preview)";
mysql_query($query);
}
?>
|
| |
|
|
|