2011-12-19 47 views
1

例如,您可以搜索伦敦的一家酒店,并获得250家酒店,其中25家酒店在首页上显示。在每个页面上,用户可以根据价格,姓名,用户评论等选择酒店。现在要做的明智之举将仅仅是从数据库中获得第一页上的前25家酒店。当用户移动到页面2时,为下一个25个酒店进行另一个数据库查询并将先前的结果保存在缓存中。旅游网站如何实现搜索结果的排序?

现在考虑这一点,用户在第1页上,看到25家酒店按价格排序,现在他根据用户评分对它们进行排序,在这种情况下,我们应该保留我们已经进入缓存的酒店,并只要求额外酒店。这是如何实施的?有没有建立在任何语言(最好是PHP)或我们必须从头开始使用多个查询?

回答

0

这通常如下进行:

查询与order by执行必需字段,并用top(在某些数据库limit)设置为(page_index + 1) * entries_per_page结果。查询返回一个随机访问行集(您也可能会听说这个称为结果集或记录集,具体取决于您使用的数据库库),它支持诸如MoveTo(row_index)MoveNext()等方法。所以,我们执行MoveTo(page_index * entries_per_page),然后我们读取并显示entries_per_page结果。行集通常还提供了一个Count属性,我们调用该属性来获取查询会获取的行数(如果我们让它运行到最后(当然,我们不这样做),以便我们可以计算和显示用户存在多少页面。

+0

谢谢MikeNakis :) – ankit

+0

很高兴能够有所帮助! –

相关问题