有没有简单的方法可以使用PHP上下移动记录。例如,如果记录按此顺序(A,B,C,D),当用户单击记录“C”的向上按钮时,显示顺序必须更改为(A,C,B,D)。 效率如此:
'C' -> 'temp'(copy)
'C' -> 'B' (update)
'B' -> 'temp' (update)
有没有更好的方法来做到这一点。
答案 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)