我有一个无限滚动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>
</td>
<?PHP } // Show if not first page ?>
<?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, max(0, $pageNum_rsList - 1), $queryString_rsList); ?>">Prev</a>
</td>
<?PHP } // Show if not first page ?>
<?PHP if ($pageNum_rsList < $totalPages_rsList) { // Show if not last page ?>
<td width="25" Nowrap="Nowrap">
<a href="<?PHP printf("%s?pageNum_rsList=%d%s", $currentPage, min($totalPages_rsList, $pageNum_rsList + 1), $queryString_rsList); ?>">Next</a>
</td>
<?PHP } // Show if not last page ?>
<?PHP if ($pageNum_rsList < $totalPages_rsList) { // Show if not last page ?>
<td width="25" Nowrap="Nowrap">
<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"> </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>
编码愉快!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。