2014-09-26 171 views
-1

我正尝试使用“上一个”和“下一个”按钮按ID排序返回一条记录。虽然我在代码中遇到了一些问题。分页:上一页和下一页使用PHP

<?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语句的错误。有什么想法吗?

+0

您的查询是正确的!真的是你的问题?! – 2014-09-26 16:01:55

+0

听起来像你想要别人为你写一些代码。你有尝试过什么吗?你可以与我们分享吗? – 2014-09-26 16:02:40

+1

这可以是* Paging *的应用程序:[MySql Data - 实现分页的最佳方式](http://stackoverflow.com/questions/3799193/mysql-data-best-way-to-implement-paging) – 2014-09-26 16:03:05

回答

1

我终于明白了问题所在。这是我想出了:

<?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;?> 
0

Limitoffset可以用来获取特定的记录,但它会是太多的开销。取而代之的是将变量中的整个表数据传递给javascript,并在javascript中进行迭代。

编辑1:我故意没有提供任何代码示例,因此您可以自己尝试一下。

0

然后你可以使用后查询,如SELECT * FROM table ORDER BY LastName ASC Limit 1,1。 (对于下一个),然后将限制更改为2,1等等。

相关问题