2011-12-03 44 views
0

可能重複:
PHP & MySQL Pagination Update Help顯示MySQL查詢而改變頁面

所以,在我的網站,有10頁。在每一頁我想顯示我的表中不同的行。在第一頁(我使用的MySQL數據庫和我的表稱爲 「A」。)

我行從表:

$result = mysql_query("SELECT * FROM A ORDER BY date DESC LIMIT 20"); 

我的網頁:

<div class="pagenavi" > 
    <span class="pages"><span><a href="index.php"><</a></span> 
    <span class="currentpage">1</span> - 
    <a href="/pages/page2.php">2</a> - 
    <a href="/pages/page3.php">3</a> - 
    <a href="/pages/page4.php">4</a> - 
    <a href="/pages/page5.php">5</a> - 
    <a href="/pages/page6.php">6</a> - 
    <a href="/pages/page7.php">7</a> - 
    <a href="/pages/page8.php">8</a> - 
    <a href="/pages/page9.php">9</a> - 
    <a href="/pages/page10.php">10</a> 
    <span id="nextpage"><a href="/pages/page2.php" class="arrow">></a></span> 
    </span> 
</div> 

所以,在不同的頁面中,我可以通過更改限制值來顯示不同的行,但每次都會進入另一頁,效率不高。我想要的是,在同一頁面中顯示不同的行而不用另一頁(例如index.php)。如果這些鏈接是按鈕,就沒有問題,但它們不是。我能做什麼?

+0

使用http://stackoverflow.com/questions/3615515/php-sample-script-for-pagination –

回答

1

這可以以更好的方式實施。您不需要製作10個不同的PHP腳本,但是您可以使用GET變量動態地執行此操作。這裏是一個代碼片段,解釋更多:

<?php 
$recPerPage = 20; // number of records per page 
$maxPages = 10; // maximum number of pages 
if (!isset($_GET['page'])) { 
    $pn = 1; 
} else { 
    $pn = (int) $_GET['page']; 
} 
if ($pn < 1) { 
    $pn = 1; 
} 
$offset = ($pn - 1) * $recPerPage; 
$result = mysql_query("SELECT * FROM A ORDER BY date DESC LIMIT " . $offset . ',' . $recPerPage); 
// ... DB code or other processing 
// ... 

// now let's dynamically generate the page numbers 
$arrPage = Array(); 
for ($i = 1; $i <= $maxPages; $i++) { 
    if ($i == $pn) { 
     $arrPage[] = '<span class="currentpage">' . $i . '</span>'; 
    } else { 
     $arrPage[] = '<a href="/temp/index.php?page=' . $i . '">' . $i . '</a>'; 
    } 
} 
$prevPn = ($pn - 1) < 1 ? 1 : ($pn - 1); 
$nextPn = ($pn + 1) > $maxPages ? $maxPages : ($pn + 1); 
?> 
<div class="pagenavi" > 
    <span class="pages"> 
     <span><a href="/temp/index.php?page=<?php echo $prevPn; ?>" class="arrow"><</a></span> 
     <?php echo implode(' - ', $arrPage); ?> 
     <span id="nextpage"><a href="/temp/index.php?page=<?php echo $nextPn; ?>" class="arrow">></a></span> 
    </span> 
</div> 

希望這有助於!

是的,所有的頁面鏈接現在指向index.php。

雖然我想問一個問題。爲什麼你說如果鏈接是按鈕就不會有問題?

+0

我會試試這個謝謝。我說按鈕會好,因爲當我使用if(isset)爲每個頁面時,它將解決我認爲的問題。 –

+0

我實現了這個代碼非常感謝你!解決了我的問題。 –

+0

很好,它幫助:-) – Abhay

1

如果您的頁面不太大,而且只有10個頁面,則可以將每個頁面加載到div中,在css中將顯示設置爲none,並使用javascript顯示有人點擊鏈接時所需的div 。

如果頁面太大或者頁面太多,請使用Ajax每次獲取內容。

+0

是的,但格式不應該改變。我忘了提到這一點。所以圖像有一個框包含表格中的行。當我改變頁面時,只有行會在框中改變。其餘的網站應該保持不變。 –