这是调用ajax
的js脚本var tempScrollTop, currentScrollTop = 0;
$(document).scroll(function(){
currentScrollTop = $(document).scrollTop();
var ids = new Array();
if (tempScrollTop < currentScrollTop )
{
var result = currentScrollTop % 100;
if(result == 0 || (result > 20 && result < 30))
{
var items = $(".item");
var items_l = items.length;
for(var i = 0; i < items_l; i++)
{
ids[i] = parseInt(items[i].id.replace(/\D+/g,""));
}
ids = ids.sort();
var last_id = ids[0];
$.ajax({
url: "ajax/load",
type: "POST",
data: {last_id : last_id},
success: function(res){
$("#content").append(res);
}
});
}
}
这是控制器方法
public function ajaxLoad()
{
$last_id = intval($this->input->post("last_id"));
//$last_id++;
$db_data['query'] = $this->db->query("SELECT * FROM items WHERE id < ".$last_id." LIMIT 1");
$data['content'] = $this->load->view('item', $db_data, true);
echo $data['content'];
}
所以目的是我想获取mysql中的id,该页面的当前次ID是次要的,例如如果页面中的次要ID是25,我想选择下一个N记录,但是如果我写的是从id&lt; current_id,数据库每次都选择第一行,因为它是所有数据库中最小的一行,但我需要NEXT minor,这怎么办?
我的意思是20是下一个小于25,但我不想选择15,在我得到20之前
假设我们在db:14,26,30,40 ......
中有这个ID所以页面中的未成年人是30,我想选择下一个次要ID,它将是26,然后是14,这可以做到吗?
答案 0 :(得分:1)
试试这个:
$db_data['query'] = $this->db->query("SELECT * FROM items WHERE id < ".$last_id." ORDER BY id DESC LIMIT 1");
答案 1 :(得分:0)
看起来你只需要一个order by
:
SELECT * FROM items WHERE id < $last_id ORDER BY id DESC LIMIT 1
(我最初读错了,并认为你在寻找更高的数字)。