使用PHP上下移动记录

时间:2011-03-08 13:29:29

标签: php mysql

有没有简单的方法可以使用PHP上下移动记录。例如,如果记录按此顺序(A,B,C,D),当用户单击记录“C”的向上按钮时,显示顺序必须更改为(A,C,B,D)。 效率如此:

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

有没有更好的方法来做到这一点。

3 个答案:

答案 0 :(得分:4)

你总是可以交换想要交换的元素的值... list($ b,$ c)= array($ c,$ b);

<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 :(得分:1)

您标记了您的问题“mysql”。看一下ORDER BY sql语句。您可以在表中添加一个名为“priority”或类似的行。每个条目按升序或降序获得优先级。当用户更改订单时,您必须更新两行。

答案 2 :(得分:0)