在更改页面时显示mysql查询

时间:2011-12-03 15:49:29

标签: php javascript html

  

可能重复:
  PHP & MySQL Pagination Update Help

所以,在我的网站上,共有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)。如果这些链接是按钮,那就不会有问题,但事实并非如此。我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您的页面不是太大而且您只有10页,则可以在div中加载每个页面,在css中将显示设置为none,并使用javascript显示有人点击链接时所需的div。

如果页面太大或者太多,请使用Ajax每次都获取内容。

答案 1 :(得分: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。

我想问一件事。为什么你说如果链接是按钮会没有问题?