【问题标题】:Loop through PHP function, display userdata from Mysql - limit to display to 25 items and add next button循环 PHP 函数,显示 Mysql 中的用户数据 - 限制显示 25 项并添加下一步按钮
【发布时间】:2012-08-24 04:19:39
【问题描述】:

我有这个 PHP 函数,我用它来显示我的用户数据。如果运行一次,它基本上会显示一个包含用户数据的 div。

function listings($fornavn, $efternavn, $email, $adresse, $tlf, $postnr, $city, $fodselsdag, $brugerid,$bartype,$idbar)
{

    ?>

    <div class="container">
    <span class="records" id="id-<?php echo $brugerid;?>">

    <div class="customer bidDiv clearfix">

    <?php if ($bartype=='temp_vip') { ?>

        <ul>
            <li>
                <span class="actionSpan" id="<?php echo $brugerid;?>" value="<?php echo $idbar;?>">
                <a class="edit-opt" id="godkend" href="#">GODKEND</a>
                </span>
            </li>
            <li>
                <span class="actionSpan" id="delete-<?php echo $brugerid;?>" value="<?php echo $bartype;?>">
                <a class="delete-opt" id="delete" href="#">Afvis</a>
                </span>
            </li>

    <?php }else{ ?>

            <ul>
            <li>
                <span class="actionSpan" id="delete-<?php echo $brugerid;?>" value="<?php echo $bartype;?>">
                <a class="delete-opt" id="delete" href="#">Slet</a>
                </span>
            </li>
            <li>
                <a class="edit-opt" href="editform.php?id=<?php echo $brugerid."&bartype=".$bartype;?>" rel="facebox">Rediger</a>
            </li>

    <?php if ($bartype =='vip'){?>

            <li>
                <a class="print-opt" href="print.php?id=<?php echo $brugerid;?>" rel="facebox">Print</a>
            </li>

    <?php }else{
         // Dont render vip link
    }}?>
            </ul>
            <p class="contact-data">
                <?php echo $email;?><br>
                Tlf.: <?php echo $tlf;?>
            </p>
            <div class="base-data">
                <h4><?php echo ucwords($fornavn)." ".ucwords($efternavn);?></h4>
                <p>Fødselsdag <?php echo $fodselsdag;?></p>
                <address><?php echo ucwords($adresse) ." ". $postnr ." ". ucwords($city);?></address>
            </div>
    </div><!-- end customer -->

        </div>
    </span>
<?php

我主要在循环中使用此函数,以显示我的 MySQL 数据库中与其他事物有特定关系的所有用户。

这一切都很好。但目前它会立即提取所有结果。现在我只有 5 个成员,所以没问题,但是如果我有 800 或 2000 个成员,那么用户列表会很长。

所以我想对它显示的用户数实施某种限制,但仍然能够浏览所有用户。许多网站使用类似页面的东西并以这种方式分割结果。类似的链接:

[1] [2] [3] [Last page>>]

我不知道如何开始这样做?我将如何进行?

还研究了这个 Jquery 插件: http://andersonferminiano.com/jqueryscrollpagination/

但它不断重新加载我的 PHP 文件,导致循环重新启动,它只是无休止地一遍又一遍地显示结果。

有人可以帮我解释创建这个背后的逻辑吗?或者更好的是,指出我可以使用上面的 jquery 插件的方向 - 它只加载一次循环,并在我滚动时呈现结果。

任何帮助或指点将不胜感激!

谢谢

【问题讨论】:

  • 你需要分页看看phpeasystep.com/phptu/29.html
  • 您在询问分页Check out this link。我看到的第一个;懒得看,只是在谷歌上搜索“PHP mysql pagination”
  • 谢谢! :) 我会看看,使用 Pagination 可能更容易实现我发布的 jquery 插件。
  • 除了马特的评论,如果你卡在分页上,想在这里问一个问题,你发布的功能是无关紧要的,你需要发布你查询数据库和循环的部分通过结果。我建议您从“正常”分页开始,然后在一切正常后添加 jquery / javascript 内容。
  • 谢谢你的建议,我会记住这个功能的东西——主要是为了展示/解释我想要做什么。干杯

标签: php jquery mysql function


【解决方案1】:

默认情况下,Jquery 分页只会将给定的表格分解为页面上的几个选项卡,即所有数据都被实际加载。有一些可以让您执行 AJAX 请求来获取下一页,与您的 PHP 代码一起工作。

理想情况下,您希望使用 LIMIT(结果对象中的行数)和 OFFSET(从行 X 开始)限制查询,这将为您提供从偏移行开始直到限制的记录数,然后使用PHP端的逻辑来确定最大页数。

  $page = $_POST["page"] * 25; // make sure that page 0 is the starting page or calculate 
  $SQL =  "SomeQueryText LIMIT 25 OFFSET '$page'" ;
  $result = query ($SQL);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    相关资源
    最近更新 更多