繁体   English   中英

PHP中的上一行和下一行

[英]Previous and next row in PHP

我在phpmyadmin中有一个带有'val'列和'num'列的表。 这两列的数字范围为0到10。使用PHP,我想在phpmyadmin中访问此表,当我的'val'= 10时,我想获取紧接在'val'之前和之后的'num'值。 10值。 所以在图像中我想得到当val = 10时,num = 9和4,对于第二个val = 10,num = 4和10。

$s = $mysqli->query("SELECT `Num` FROM `user_entries` WHERE `Val` = 10");

我不确定接下来要添加什么,因为我没有找到能够执行此操作的函数。 我怎样才能做到这一点?

这是我正在使用的表的较小示例

我不确定您是否可以按照表的方式执行此操作(实际上您可能可以在PHP中执行此操作,但这可以按一天的方式工作,但不可以在..(请参阅此链接 )。 。

我建议根据自己的需要设置一个idsort列,看起来像这样:

id  Val     Num
1   2       6
2   0       0
3   4       8
4   3       9
5   10      1
6   8       4
7   10      6
8   5       10

有了这个,我建议使用MySQL获得您想要的东西:

SELECT 
IFNULL((SELECT f2.Num FROM user_entries f2 WHERE f2.id = f.id-1),-1) AS previous_Val,
IFNULL((SELECT f2.Num FROM user_entries f2 WHERE f2.id = f.id+1),-1) AS next_Val
FROM user_entries f
WHERE Val = 10    
ORDER BY id 

这将返回:

previous_Val    next_Val
9               4
4               10

如果没有previous_Val或next_Val,它将返回-1

您可能需要查看如何使用它,希望对您有所帮助。

您的查询应该像这样

"SELECT `Num` FROM `user_entries` WHERE `Val` = '10' ";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM