2011-03-08 3 views
0

Есть ли простой способ перемещения записей вверх и вниз с помощью PHP. например, если записи находятся в этом порядке (A, B, C, D), когда пользователь нажимает кнопку «вверх» для записи «C», тогда порядок отображения должен измениться на (A, C, B, D). Является ли это эффективным:Перемещение записей вверх и вниз с помощью PHP

'C' -> 'temp'(copy) 
'C' -> 'B' (update) 
'B' -> 'temp' (update) 

Есть ли лучший способ сделать это.

ответ

3

вы всегда можете просто поменять местами значения eleents вы хотите поменять ... список ($ Ь, $ с) = массив ($ с, $ б);

<a href='?direction=dn&index=1'>Down</a> Item 1 

<a href='?direction=up&index=2'>Up</a><a href='?direction=dn&index=2'>Down</a> Item 2 

<a href='?direction=up&index=3'>Up</a><a href='?direction=dn&index=3'>Down</a> Item 3 

<a href='?direction=up&index=4'>Up</a> Item 4 

PHP сторона:

$direction=$_REQUEST['direction']; 
$index=$_REQUEST['index']; 

if($direction=='up'){ // if we clicked up then we want to swap with the preceeding item.. 
    list($items[$index-1],$items[$index])=array($items[$index],$items[$index-1]); 
}else{ // else we want to swap with the subsequent item. 
    list($items[$index+1],$items[$index])=array($items[$index],$items[$index+1]); 
} 
1

Вы помечено свой вопрос "MySQL". Взгляните на инструкцию ORDER BY sql. Вы можете поместить в таблицу дополнительную строку, называемую «приоритет» или аналогичную. Каждая запись получает приоритет в порядке возрастания или убывания. Когда пользователь изменяет порядок, вам необходимо обновить две строки.

Смежные вопросы