PHP中的上一行和下一行

时间:2014-06-30 11:30:59

标签: php

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

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

我还不确定下一步要添加什么,因为我还没有发现能够执行此操作的任何功能。我怎么能这样做?

This is a smaller sample of the table I am using

2 个答案:

答案 0 :(得分:1)

我不确定你可以像你的桌子那样做(你实际上可以在PHP中这样做,但是这可能会在你想要的一天,但不是后一天...(见{ {3}}))。

我建议有一个专栏,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

您可能需要了解如何使用它,希望它有所帮助。

答案 1 :(得分:0)

您的查询应该是这样的

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