我正试图使用"上一个"answers"下一个"按钮按ID顺序一次返回一条记录。不过,我的代码有一些问题。
<?php
include ('header.php');
include ('connection.php');
//pagination starts here
if(isset($_GET['page'])){
$page = preg_replace('#[^0-9]#','',$_GET['page']);
}else{
$page = 1;
}
$perPage = 1;
$lastPage = cell($count / $perPage);
if($page < 1){
$page = 1;
}else if($page > $lastPage){
$page = $lastPage;
}
$limit = 'LIMIT ' .($page -1)*$perPage .',$perPage';
$query = mysql_query('SELECT LastName FROM residents ORDER BY ID DESC $limit');
if($lastPage != 1){
if($page != $lastPage){
$next = $page + 1;
$pagination.='<a href="AutoIncrement.php?page='.$next.">Next</a>';
}
//error occurs here
if($page != 1){
$prev = $page - 1;
$pagination.='<a href="AutoIncrement.php?page='.$prev.">Previous</a>';
}
}
?>
除了我在最后一个IF语句中不断出现错误之外,一切似乎都很好。有什么想法吗?
我终于弄清楚问题出在哪里了。以下是我的想法:
<?php
//browsing feature of database
include ('connection.php');
include ('header.php');
$count_query = mysql_query("SELECT NULL FROM residents");
$count = mysql_num_rows($count_query);
//pagination starts here
if(isset($_GET['page'])){
//$page = preg_replace("##[^0-9]","",$_GET['page']);
$page = $_GET['page'];
//echo "Page is ".$page;
}else{
$page = 1;
//echo "Page is one";
}
$perPage = 1;
$lastPage = ceil($count/$perPage);
if($page <1){
$page = 1;
}else if($page > $lastPage){
$page = $lastPage;
}
$limit = "LIMIT " .($page-1) * $perPage .", $perPage";
$query = mysql_query("SELECT * FROM residents ORDER BY ID ASC $limit");
if($lastPage != 1){
if($page != $lastPage){
$next = $page + 1;
$pagination.='<nav><ul class="pager"><li><a href=Browse.php?page='.$next.'>Next</a> </li></ul><nav>';
}
if($page != 1){
$prev = $page - 1;
$pagination.='<nav><ul class="pager"><li><a href=Browse.php? page='.$prev.'>Previous</a></li></ul></nav>';
}
}
while($row = mysql_fetch_array($query)){
$output.='<p><img src="upload/' . $row['Picture'].'" width="70" height="70"/></p>';
$output.= $row['FirstName']. '<br />';
$output.= $row['LastName']. '<br />';
$output.= $row['Address']. '<br />';
$output.= $row['Birthday']. '<br />';
$output.= $row['FormerResidence']. '<br />';
$output.= $row['Career']. '<br />';
$output.= $row['Education']. '<br />';
$output.= $row['SpecialInterests']. '<br />';
}
?>
<?php
/*while($person = mysql_fetch_array($result)) {
echo "<h3>" . $person['FirstName'] . "</h3>";
echo "<p>" . $person['LastName'] . "</p>";
echo "<p>" . $person['Address'] . "</p>";
echo "<p>" . $person['Birthday'] . "</p>";
echo "<p>" . $person['FormerResidence'] . "</p>";
echo "<p>" . $person['Career'] . "</p>";
echo "<p>" . $person['Education'] . "</p>";
echo "<p>" . $person['SpecialInterests'] . "</p>";
echo '<p><img src="upload/' . $person['Picture'].'" width="70" height="70"/> </p>';
}*/
?>
<h1>Browse Residents</h1>
<!-- Comment start
<a href="nextandprevious.php?page='.$previous.">Previous</a>
<a href="nextandprevious.php?page='.$next.">Next</a>
Comment end -->
<?php echo $output;?>
<?php echo $pagination;?>
Limit
和offset
可以用来获取特定的记录,但开销太大。相反,在一个变量中获取整个表数据,将其传递给javascript并在javascript中迭代。
编辑1:我故意没有提供任何代码示例,所以你可以自己尝试一下。
然后可以使用类似SELECT * FROM table ORDER BY LastName ASC Limit 1,1
的查询。(对于下一个),然后在将限制更改为2.1之后,依此类推。