大家好我正在尝试编写一个排序脚本
为此,我的用户将点击一个上移按钮,该按钮会将我们想要移动的当前选择的ID发布到处理脚本的新页面。
因此,使用下面的获取函数,我得到了我们想要移动的当前行的排序ID
$sqlCurrent = "SELECT * FROM `contact` WHERE `contact_id` = $id LIMIT 0, 1 ";
$resultsCurrent= mysql_query($sqlCurrent) or die(mysql_error());
$rowC = mysql_fetch_row($resultsCurrent);
$currentSort =$rowC[9];
然后我使用
以降序排出所有数据现在,如果我当前的排序顺序为6,我想查找排序顺序为3或4或5的行,所以我使用了降序,下一个排序列表出现在下一个表中。
$sql = "SELECT * FROM `contact` ORDER BY `contact`.`contact_sortOrder` DESC LIMIT 0, 30 ";
问题是如何使用1个或2个函数简单地从该行获取数据。
我们不能简单地寻找下一个排序顺序,因为它可能不存在。
对于这个例子,我使用了像这样的数据库
rowId 1 Sort order 6
rowId 2 Sort Order 2
rowId 3 Sort Order 4
现在我是行ID 3,想要用下一个替换它。所以我需要使用最短的方法以某种方式获取rowId 2。
任何帮助都会有用
答案 0 :(得分:0)
可以像
一样简单$query = "
SELECT
x,y,z
FROM
contact
WHERE
contact_sortOrder < $currentSort
LIMIT
1
";
(假设$ currentSort对于“直接插入”查询是安全的。请参阅http://docs.php.net/pdo.prepared-statements)
答案 1 :(得分:0)
select prev.*
from contact as curr
left join contact as prev on prev.contact_sortOrder < curr.contact_sortOrder
where curr.contact_id = $id
order by prev.contact_sortOrder desc
limit 1