我有一个文本框和一个按钮,可以将您输入的任何内容放入数据库中,然后我可以显示所有这些内容,以及删除按钮和“顶部”按钮
<?php
$resultset2 = $db3->query('SELECT * FROM ask');
if($resultset2->num_rows != 0) {
while ($rows = $resultset2->fetch_assoc()) {
$question_enter = $rows['question'];
$id = $rows['id'];
echo "<form action='' method='post'><input type='hidden' value='".$id."'
name='the_id'><div><p>$question_enter<input type='submit' value='Delete'
name='deletedefaultnote'><input type='submit' value='Top' name='putontop'>
</p></div></form>";
}
} else {
echo 'no results.';
}
?>
我有删除按钮工作,但我无法弄清楚如何获得“顶部”按钮将元素放在正在显示的列表的顶部。我该怎么做?
如果它是相关的,比如item1和item2在长列表的底部,如果我将item1放在列表的顶部,然后将item2放在顶部,item2将在顶部,item1将在列表的第二位。我不希望元素返回原来的位置,如果其他东西在顶部。
答案 0 :(得分:-2)
要将新订单存储到数据库中,您必须更新所有位置。一个简单的方法是使用&#34;位置&#34;像sym提到的专栏。
然后你可以position-column beginning with 1 (0 is the "guardian")
在您需要"new top" item and set the position to 0 (guardian)
之后更新update ALL items/rows and set the position to old_position+1
。
正如您所看到的,这种方法对查询很重要,因此我建议您不要在每次点击&#34; top&#34;时更新表格。按钮,而不是像jQuery(Kuya)所说的那样在前端订购项目,并且在您重新订购列表之后,将其保存在上述方法的一个大请求中。
更新:要更新数据库中的行,您还可以在满足以下条件时使用单个查询:
然后你可以做UPDATE tablename SET position = position + 1
。然后数据库将自动递增所有位置值(和位置0,监护人将再次可用)。