2014-09-26 173 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等等。

相關問題