我到处都搜索过,但什么也得不到。场景是当我从MySQL / PHP运行select语句时,我想使用Next&以前的按钮可以在结果中前后导航。
有谁知道我怎么能做到这一点?
以下是我运行查询的方式:select everything from members where hair = black;
这会返回8个结果,我有一个像details.php?id=3
这样的页面,它接受id并显示详细信息。
我希望能够继续点击下一个按钮并从结果中转移到另一个ID。
我如何做到这一点?
感谢您的协助。
答案 0 :(得分:1)
假设您拥有$allIds
var中的所有ID,请尝试以下操作:
<?php
$id = (int) $_GET['id'];
$key = array_search($id, $allIds);
$nextId = $allIds[$key+1];
?>
答案 1 :(得分:1)
如果您打算使用“下一步”按钮每页显示1个产品详细信息,则
1) Get the total rows from table 2) Find total number of pages like $totalPages = $totalRows; //since 1 record per page 3) Loop thru $totalPages value to generate next links 4) Get the id of product from page url $_GET 5) Query sql using te product id obtained frm GET
那就是基础知识,希望你能得到它
答案 2 :(得分:0)
嗯,这里有2个不同的范围可供解决,首先,当您查询时,您处于PHP /服务器端模式。 PHP获取一些数据,处理它,根据我对你的问题的知识显示一些数据,然后将其发送到浏览器。
接下来,您拥有客户端范围,客户端将HTML呈现到他的屏幕,并且可以单击“下一步”和“上一步”。当他这样做时,他向服务器发出请求,以获取基于当前记录的NEXT或PREVIOUS记录。
您有2个方案可以解决此问题:
1)将整个数据加载到内存中并扫描它以找到当前位置,查看是否有NEXT和PREVIOUS元素并响应用户的请求。如果用户要求NEXT,那么只需再移动一条记录。如果用户要求PREVIOUS项目,那么当使用WHILE或FOR / FOREACH进行扫描时,始终将内容保存在您看到的“lastitem”中,您可以将此“lastitem”用作PREVIOUS项目。
2)如果你有很多(我的意思是超过1000个)项目,你需要使用一个小的子查询魔法并使用SQL来解决这个问题。
select everything from members where hair = black AND id = XYZ ORDER BY id LIMIT 2;
这将返回CURRENT和NEXT元素。然后再次调用相同的查询,但这一次,命令它DESC,以便你的2个项目是当前和上一个。
select everything from members where hair = black AND id = XYZ ORDER BY id DESC LIMIT 2;
请注意,您可以按照自己的方式订购,目标是获得静态结果,总是以相同的方式运行,以便您可以反转它并获取所选项目周围的项目。
我希望这有助于你