2011-11-22 33 views
0

我到处搜索,但没有得到任何东西。这种情况是,当我从MySQL/PHP运行select语句时,我想使用Next按钮在结果中向后和向前导航。Navigate Throught MySQL Result

有谁知道我该如何做到这一点? 以下是我如何运行查询:select everything from members where hair = black;

这将返回8个结果,并且我有一个像这样的页面details.php?id=3需要id并显示详细信息。

我希望能够继续点击下一个按钮并从结果中移到另一个ID。

我该如何做到这一点?

感谢您的协助。

+0

你看过这个链接吗? :http://www.phpfreaks。com/tutorial/basic-pagination这不完全是你需要的,但它几乎是那种类型.. – Nonym

回答

1

假设你已经在$allIds VAR所有ID,尝试这样的事情:

​​
+0

谢谢你,但你的建议是非常微不足道的。 –

+0

这假定您的下一个记录ID是连续的。如果一条记录在两者之间被删除可能不是。 – davidethell

+0

在这种情况下,在您的查询中,您应该使用> =运算符,并且限制为1。 – bigblind

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 

那么这就是基本知识,希望你得到它

0

那么,你有2个不同的范围来解决,首先,当你查询你在PHP /服务器端模式。 PHP获取一些数据,处理它,根据我对你的问题的知识展示一些数据,然后将它发送到浏览器。

接下来,您有客户端作用域,其中客户端将HTML呈现到他的屏幕上,并且可以单击NEXT和PREVIOUS。当他这样做时,他向服务器发出一个请求,以根据当前的请求获取NEXT或PREVIOUS记录。

你有2个场景来解决这个问题出来了:

1)加载整个数据到内存,进行扫描,以找到你的当前位置,看是否有下一个和前一个元素,并请求作出回应用户。如果用户要求下一个,简单,只需移动一个记录。如果用户要求上一个项目,那么当使用WHILE或FOR/FOREACH进行扫描时,请始终在内存中保存您所看到的“最新项目”,您可以将此“lastitem”用作您的上一个项目。 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; 

注意,您可以订购您想要的方式,我们的目标是获得一个静态结果,东西总是得到了同样的方式,这样就可以扭转这种局面,并得到各地选择一个项目。

我希望这可以帮到你

+0

感谢Mathieu,我会尝试这个建议,看看它是否有效。 –

相关问题