2011-05-26 130 views
1

我已經通過網絡搜索,無法真正發現我的代碼有什麼問題。下一個和prev鏈接不起作用。它只獲得第一個條目。分頁鏈接不工作

希望你們能幫助解決這個問題!謝謝。

<?php 
// ROWS DISPLAYED PER PAGE 
$rows_per_page = 1; 

// GET PAGE NUMBER 
$page = $_GET['page']; 
$offset = (!empty($page)) ? $page : $page = 1; 

// URL CLEAN UP 
$self = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; 
$self = str_replace("page={$offset}", "", $self); 

// GET LIST OF STATES 
$offset = ($page) ? ($page - 1) * $rows_per_page : 0; 
$id = $_GET['id']; 
$sql = "SELECT * FROM updates WHERE update_categoryID = '$id' ORDER BY update_date   DESC LIMIT {$offset},{$rows_per_page}"; 
$result = mysql_query($sql)or die('Error, query failed'); 

// GET NUMBER OF PAGES 
$query1 = "SELECT * FROM updates WHERE update_categoryID = '$id'"; 
$result1 = mysql_query($query1)or die('Error, query failed'); 
$total = mysql_num_rows($result1); 
$NumPgs = ceil($total/$rows_per_page); 

while($row = mysql_fetch_assoc($result)) 
{ 
?> 
<h2><?php echo $row['update_title']; ?></h2> 
<p class="datetime"><?php echo $row['update_date'];?></p> 
<br> 
<p class="post"><?php echo $row['update_content'];?></p> 
<a href="blogcomment.php?id=<?php echo $row['update_id'];?>">Post a Comment</a> 
<?php 
} 
?> 
<span style="float:right"> 
<? if ($NumPgs > 0 && $page!=1) { 
echo "<a href=\"{$self}page=".($page- 1)."\">&lt;&lt;Prev</a>&nbsp;&nbsp;"; } ?> 
[Page <?php echo $page; ?>] 
<? if ($page < $NumPgs) { 
echo "<a href=\"{$self}page=".($page+1)."\">&nbsp;&nbsp;Next&gt;&gt;</a>"; } ?> 
<b><? echo $offset+1;?> to <? echo $offset+$rows_per_page;?>, of <? echo $total; ?> Entries</b> 
</span> 
</div> 

回答

0

短打開標籤不工作在你的情況。

http://us3.php.net/echo

http://us3.php.net/manual/en/ini.core.php#ini.short-open-tag

試試下面的代碼。

<?php 
    // ROWS DISPLAYED PER PAGE 
    $rows_per_page = 1; 

    // GET PAGE NUMBER 
    $page = $_GET['page']; 
    $offset = (!empty($page)) ? $page : $page = 1; 

    // URL CLEAN UP 
    $self = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; 
    $self = str_replace("page={$offset}", "", $self); 

    // GET LIST OF STATES 
    $offset = ($page) ? ($page - 1) * $rows_per_page : 0; 
    $id = $_GET['id']; 
    $sql = "SELECT * FROM updates WHERE update_categoryID = '$id' ORDER BY update_date   DESC LIMIT {$offset},{$rows_per_page}"; 
    $result = mysql_query($sql)or die('Error, query failed'); 

    // GET NUMBER OF PAGES 
    $query1 = "SELECT * FROM updates WHERE update_categoryID = '$id'"; 
    $result1 = mysql_query($query1)or die('Error, query failed'); 
    $total = mysql_num_rows($result1); 
    $NumPgs = ceil($total/$rows_per_page); 

    while($row = mysql_fetch_assoc($result)) 
    { 
    ?> 
    <h2><?php echo $row['update_title']; ?></h2> 
    <p class="datetime"><?php echo $row['update_date'];?></p> 
    <br> 
    <p class="post"><?php echo $row['update_content'];?></p> 
    <a href="blogcomment.php?id=<?php echo $row['update_id'];?>">Post a Comment</a> 
<?php 
} 
?> 
    <span style="float:right"> 
    <? echo ($prev = ($NumPgs > 0 && $page!=1) ? "<a href=\"{$self}&page=".($page- 1)."\">Prev</a>&nbsp;&nbsp;": 
    "Prev&nbsp;&nbsp;"); ?> 
    [Page <?php echo $page; ?>] 
    <? echo ($next = ($page < $NumPgs) ? "<a href=\"{$self}&page=".  ($page+1)."\">Next</a>": 
    "Next");?>&nbsp; 
    <b>&nbsp;<? echo $offset+1?> to <?=$offset+$rows_per_page?>, of <? echo $total?> Entries</b> 
    </span> 
    </div> 
+0

問題是<=您必須更換呢?與<?回聲 – emaillenin 2011-05-26 09:12:33

+0

嗨,謝謝!我試過你的代碼並修改了一下,但它仍然無法工作。每當我點擊「下一個」鏈接,它仍然只顯示第一個條目。 – Jane 2011-05-26 09:31:58

+0

你可以發佈輸出的HTML代碼嗎? – emaillenin 2011-05-26 09:35:33

1

嗯,也許你的頁面參數是追加到查詢字符串,試試這個:

$self = $_SERVER['PHP_SELF']."?". 
     preg_replace($_SERVER[ 'QUERY_STRING' ], 'page=[0-9]+', ''); 

代替:

// URL CLEAN UP 
$self = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; 
$self = str_replace("page={$offset}", "", $self);