Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
517 views
in Technique[技术] by (71.8m points)

php - How to paginate query results for Infinite Scroll?

I have a sample page that uses 2 PHP files and a MySql database, and I'm trying to use jQuery infinite scroll on it. How can I load the next group of data from database? For example, I have 100 records in my pictures database, and I want to show 20, and then the next 20 after some scrolling.

This is my current core:

index.php

<?php
ob_start();
require_once('images.html'); 
ob_end_flush();
?>

images.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title> trata tata</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  <link rel="stylesheet" href="./css/style.css" />
   <!-- scripts at bottom of page -->
</head>
<body class="demos ">
  <nav id="site-nav">
    <h1><a href="./index.html">ole tu jest HOME</a></h1>
    <h2>Menu 1</h2>
    <ul class="docs-list">
        <li><a href="../docs/intro.html">11111111</a>
    </ul>
    <h2>Menu 2</h2>
    <ul class="demos-list">
        <li><a href="../demos/basic-single-column.html">222222222</a>
        <li class="current"><a href="#content">3333333333</a></li>
    </ul>
  </nav> <!-- #site-nav -->

  <section id="content">
     <h1>cos tam ....</h1>
     <div id="container" class="clearfix">
     <?php
     // Make a MySQL Connection
     mysql_connect("localhost", "root", "") or die(mysql_error());
     mysql_select_db("test") or die(mysql_error());

     // Retrieve all the data from the "test " table
     $result = mysql_query("SELECT * FROM foto")
     or die(mysql_error());  

     // store the records of the "TABLENAME" table into $row array and loop through
     while ( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {

     // Print out the contents of the entry 

     //echo "details: ".$row['id'];
     echo '<div class="box photo col3">';
     echo "<img src="".$row['src']."" alt="wwwwww" />";
     echo '</div>';
     }
     ?>
     </div> <!-- #container -->

     <script src="./js/jquery-1.7.1.min.js"></script>
     <script src="./jquery.masonry.min.js"></script>
     <script>
       $(function(){
         var $container = $('#container');
         $container.imagesLoaded( function(){
           $container.masonry({
             itemSelector : '.box'
           });
         });

       });
     </script>
     <footer id="site-footer">
       szaki <a href="http://desandro.com">sdfsdfdsfsdf</a>
     </footer>

  </section> <!-- #content -->

</body>
</html>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You need to add LIMIT to your queries. Example from the MySQL manual:

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

Here, 5 is the starting offset, and 10 is the amount of rows you want to fetch.

For the client-side you'll need the infinite scroll jQuery plugin.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...