滚动加载更多SQL限制

Scroll Load More SQL Limit

本文关键字:SQL 限制 加载 滚动      更新时间:2023-09-26

所以我已经布局并制作了这个网站,但现在我需要在滚动中加载更多结果。这个问题在这里已经被问了一百万次了,但我想知道是否有一种简单的方法适合我的构建。理想情况下,我想做一些有限度的事情,但我所看到的一切都是关于有一个完全独立的页面。

页面示例-

$sql = "SELECT * FROM `Products` ORDER BY id LIMIT 0,4 ";
echo    "<div class='"full_container'">";
echo        "<div class='"full'">";
if ($result = mysqli_query($con, $sql)) {
while ($row = mysqli_fetch_assoc($result)) {
echo            "<div class='"item_frame'">";
echo                "<div class='"item'">";
echo                    "<h5>".$row["Name"]."</h5>";
echo                "</div>"; #Item End#
echo            "</div>"; #Item_Frame End#

JS示例-

$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
///Where I would have the limit fix
}
});

这可以很容易地切换到能够在滚动上加载更多内容吗?还是我必须使用第二个php页面才能使用ajax?

要获得更多信息,您可能需要通过ajax进行调用,然后在返回数据后使用javascript渲染新图像。你可以像对待常规分页一样对待它,只需记住你得到了多少结果,并将其输入到你的极限中,就像一样

(function () {
  var page = 2,
      uri = 'moreImages.php';
  $(window).scroll(function() {
    if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
      $.get (uri, {page: page}, function (data) {
        page ++;
        $('#container').append (data);
      });
    }
  });
}) ();

然后在PHP页面中,您只需要根据分页规则计算偏移量

$page = (int) @$_GET['page'] ?: 1;
$numItems = 4;
$start = ($page - 1) * $numItems;
$sql = "SELECT * FROM `Products` ORDER BY id LIMIT {$start}, {$numItems}";

差点忘了:在他们到达页面底部之前发送一点请求以加快速度也是值得的。请确保在代码中设置一个标志,标记您正在等待信息,并且只有在信息清楚时才请求更多信息,否则您将在滚动时不断发送请求。