目前在php中为现有系统创建搜索页面。数据来自一个具有不寻常的数据处理结构的表。
现有系统的示例快照,销售历史网页
我观察到,如果我们要查看它正在使用的表格,我们之前在销售历史网页上看到的数据来自1对行。
我们可以看到,如果我们要搜索
player_id
956(帮派)使用SQL查询,我们得到player_point_id
96834而不是96835。
在现有系统中,销售历史记录网页显示的是player_point_id
96835记录,但它也显示了收件人player_id
956(帮派)。似乎在player_point_id
96834找到了一对记录就像收件人一样,发件人在player_point_id
找到了96835
让我们说例如搜索条件仅为player_id
956,让'说它找到了100条记录。它提出了一个问题,我需要查找它获得的player_point_id
的下一条记录。
到目前为止,我试图在带有阵列的php上进行此操作,但似乎浪费了我的想法。这是否可以使用SQL查询在SQL中解决?如果没有,欢迎其他PHP想法。
答案 0 :(得分:2)
我认为这应该有效。这将获得具有player_id 956的行和具有player_point_id的行大于那些的行。如果您只想检索第二行,则可以删除最后一行代码(从您的问题中确切地说明您实际想要查找的内容)。
SELECT t.column,
t.another_column
FROM table_name t
WHERE t.player_point_id IN (SELECT ( player_point_id + 1 )
FROM table_name
WHERE player_id = '956')
OR player_id = '956';
答案 1 :(得分:0)
这可能会有所帮助:
//get current point id
$sql = "select player_point_id from table_name where player_id=$id";
$result=mysqli_query($conn,$sql) or die(mysqli_error($conn));
$player_details = mysqli_fetch_assoc($result);
$ppid = $player_details['player_point_id'];
$ppid += 1;
//get details from the next point id
$sql = "select operator_id, kiyosuku_id from table_name where player_point_id=$ppid";
$result=mysqli_query($conn,$sql) or die(mysqli_error($conn));
$point_details = mysqli_fetch_assoc($result);
$operator_id = $point_details['operator_id']; //required answer
$kiyosuku_id = $point_details['kiyosuku_id']; //required answer
代码效率不高但肯定会有效。