php mysql排序顺序。使用超链接更改排序顺序(向上/向下箭头)

时间:2012-02-09 11:24:25

标签: php mysql

如果我有4个db行,我希望能够使用列'position'对它们进行排序。

id - name - position

1  - row1 -    1
2  - row2 -    2
3  - row3 -    3
4  - row4 -    4

我知道如何使用php SELECT SORT BY等进行排序

但我希望能够按下一个可以交换位置的超链接。

Row   img     img
row1  (down)
row2  (up)    (down)
row3  (up)    (down)
row4  (up)

即,按下第2行将改变第2行的位置 - > 1并将改变第1行的位置 - > 2

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:0)

在超链接上,加载一个PHP页面,该页面包含几个参数:

  1. 要向上/向下移动的行的ID
  2. 您想要向上/向下移动的行的当前位置
  3. 要移动的行下方/上方的行的ID
  4. 您想要向上/向下移动的行的当前位置
  5. 是否要向上或向下移动您正在移动的行(例如其ID),当前位置以及新位置。
  6. 由此,您将确切地知道您需要做什么,并可以设计查询以在数据库中交换这些项目。完成此操作后,重新加载页面。

答案 1 :(得分:0)

最简单的方法是使用允许项目重新排序的JavaScript库。 看一下这个: http://jqueryui.com/demos/sortable/

用户完成重新排序后,您可以保存所有元素的当前位置。 使用此方法,用户可以按照自己喜欢的方式重新排列所有项目,而无需在每次点击“#34; Up"或" Down"。

答案 2 :(得分:0)

UM 怎么样呢

while ($row = mysql_fetch_array($query)) {
@$group[] = $row['img'];
}

and call it
echo $group[1];
echo $group[3];
echo $group[0];
echo $group[2];

等。 idk如果这就是你的意思

答案 3 :(得分:0)

如果您只想在UI中交换位置,可以使用javascript。

例如:

<div id="1" > <div id="data_1">data goes here for row1</div> </div>
<div id="2" > <div id="data_2">data goes here for row2</div> <a onclick="moveUp(2);"> UP</a> <a onclick="moveDown(2);"> Down</a></div>
<div id="3" > <div id="data_3">data goes here for row3</div> </div>

<script>
function moveUp(n){
  var m = n-1;
  var own_id = 'data_'+n;
  var new_id = 'data_'+m;
  var tmp_data = '';
  var own_data = $(own_id).innerHtml;
  if($(new_id) != 'undefined'){
    tmp_data = $(new_id).innerHtml;
    $(new_id).innerHtml = own_data;
    $(own_id).innerHtml = tmp_data;
  }

}

function moveDown(n){
  //same logic can be applied here
}
</script>
希望它会有所帮助。

答案 4 :(得分:0)

我也遇到了同样的问题,你可以尝试这种解决方案。 http://www.phpfreaks.com/tutorial/php-custom-list-order