PHP-无限滚动数据拉

我有一个无限滚动Scipt,它可以提取数据并将其显示得很好.但是,我发现当您向下滚动时,数据提取将再次从头开始.现在,我在数据库中有8行用于测试,以使其变得容易.我获取一个数据集的控件似乎不起作用,否则它将转到下一个结果集?

//item per page  
    $limit = 5;   
    $page =(int)(!isset($_GET['p']))?1: $_GET['p'];  

    // sql query  
    $sqlContent="SELECT make, model, year, carid FROM cars";  

    //Query start point  
    $start =($page * $limit)- $limit;  

    $resContent=$DB_con->query($sqlContent);  
        $rows_returned= $resContent->rowCount();//->fetchColumn();  

    // query for page navigation  
    if( $rows_returned > ($page * $limit)){  
        $next =++$page;  

    }  


    $sqlContent = $sqlContent ." LIMIT $start, $limit";  
    $finalContent = $DB_con->query($sqlContent);  
    if($finalContent === false) {  
        trigger_error('Error: ' . $DB_con->error, E_USER_ERROR);  
    } else {  

            $rows_returned= $finalContent->rowCount();//->fetchColumn();  
    }  
?>  

然后显示结果:

<?PHP while($rowContent = $finalContent->fetch()) {  
    $year = $rowContent['year'];  
    $make = $rowContent['make'];  
    $model = $rowContent['model'];  
    ?>  
    <div class="row">  
      <div class="ride"><?PHP echo "$year $make $model"; ?></div>  
      </div>  
    <?PHP } ?>  
   </div>  
      </div>  
    <!--page navigation-->  
    <?PHP if(isset($next)):?>  
        <div class="nav">  
            <a href='index.PHP?p=<?PHP echo $next?>'>Next</a>  
        </div>  
    <?PHP endif ?>  
    </div>

解决方法:

从我作为经典asp程序员的那一刻起,我就适应了PHP.

它与First,Last,Next和amp;提供了一个不错的计数器.以前的链接.

首先是具有两个select语句的SQL查询,具体取决于您要在每页上显示的记录数和记录的总数. (以防您要显示的数字实际上大于数据库中的记录数).

<?PHP
require'connections/conn.PHP';

$maxRows_rsList = 10; // the number of records you want to show per page
$pageNum_rsList = 0;
if (isset($_GET['pageNum_rsList'])) {
  $pageNum_rsList = $_GET['pageNum_rsList'];
}
$startRow_rsList = $pageNum_rsList * $maxRows_rsList;

$query_rsList = $conn->prepare("SELECT make, model, year, carid FROM cars");
$query_limit_rsList = $conn->prepare("SELECT make, model, year, carid FROM cars LIMIT $startRow_rsList, $maxRows_rsList");
$query_limit_rsList->execute();
$row_rsList = $query_limit_rsList->fetch(PDO::FETCH_ASSOC);

if (isset($_GET['totalRows_rsList'])) {
  $totalRows_rsList = $_GET['totalRows_rsList'];
} else {
  $all_rsList = $query_rsList->execute();
  $totalRows_rsList = $query_rsList->rowCount();
}
$totalPages_rsList = ceil($totalRows_rsList/$maxRows_rsList)-1;

$queryString_rsList = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_rsList") == false && 
        stristr($param, "totalRows_rsList") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_rsList = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_rsList = sprintf("&totalRows_rsList=%d%s", $totalRows_rsList, $queryString_rsList);

$currentPage = $_SERVER["PHP_SELF"]; // so we stay on the same page just changing the recordset data
?>

然后我们的输出

<table cellpadding="5" cellspacing="0" border="0">
          <?PHP if($totalRows_rsList > $maxRows_rsList) { ?>
          <tr>
            <td colspan="2"><?PHP echo ($startRow_rsList + 1) ?> to <?PHP echo min($startRow_rsList + $maxRows_rsList, $totalRows_rsList) ?> of <?PHP echo $totalRows_rsList ?> cars<br />
                <table border="0">
          <tr>
            <?PHP if ($pageNum_rsList > 0) { // Show if not first page ?>
            <td width="25" Nowrap="Nowrap">
                <a href="<?PHP printf("%s?pageNum_rsList=%d%s", $currentPage, 0, $queryString_rsList); ?>">First</a>&nbsp;
            </td>
            <?PHP } // Show if not first page ?>
            <?PHP if ($pageNum_rsList > 0) { // Show if not first page ?>
            <td width="25" Nowrap="Nowrap">
                &nbsp;<a href="<?PHP printf("%s?pageNum_rsList=%d%s", $currentPage, max(0, $pageNum_rsList - 1), $queryString_rsList); ?>">Prev</a>&nbsp;
            </td>
            <?PHP } // Show if not first page ?>
            <?PHP if ($pageNum_rsList < $totalPages_rsList) { // Show if not last page ?>
            <td width="25" Nowrap="Nowrap">
                &nbsp;<a href="<?PHP printf("%s?pageNum_rsList=%d%s", $currentPage, min($totalPages_rsList, $pageNum_rsList + 1), $queryString_rsList); ?>">Next</a>&nbsp;
            </td>
            <?PHP } // Show if not last page ?>
            <?PHP if ($pageNum_rsList < $totalPages_rsList) { // Show if not last page ?>
            <td width="25" Nowrap="Nowrap">
                &nbsp;<a href="<?PHP printf("%s?pageNum_rsList=%d%s", $currentPage, $totalPages_rsList, $queryString_rsList); ?>">Last</a>
            </td>
            <?PHP } // Show if not last page ?>
          </tr>
        </table></td>
    </tr>
          <?PHP } else if(($totalRows_rsList == $maxRows_rsList) || ($totalRows_rsList < $maxRows_rsList)) { ?>
          <tr><td colspan="2">&nbsp;</td></tr>
          <tr><td colspan="2"><?PHP echo ($startRow_rsList + 1) ?> to <?PHP echo min($startRow_rsList + $maxRows_rsList, $totalRows_rsList) ?> of <?PHP echo $totalRows_rsList ?> cars<br /></td></tr>
          <?PHP } ?>
          <tr><td>
          <?PHP do {
              $year = $row_rsList['year'];
              $make = $row_rsList['make'];
              $model = $row_rsList['model'];
        ?>  
<div class="row">  
  <div class="ride"><?PHP echo "$year $make $model"; ?></div>  
  </div>  
<?PHP } while($row_rsList = $query_limit_rsList->fetch(PDO::FETCH_ASSOC)) ?>  
   </div>  
  </div>
</td></tr>
</table>

编码愉快!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...