Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果我已经设置了一个分页的票证表,如何使其底部有页面链接?_Php_Pagination - Fatal编程技术网

Php 如果我已经设置了一个分页的票证表,如何使其底部有页面链接?

Php 如果我已经设置了一个分页的票证表,如何使其底部有页面链接?,php,pagination,Php,Pagination,这个问题得到了回答。看看回答我问题的答案 编辑: 我还是不知道该怎么做。有人能帮忙吗?我知道这叫做分页,但我不知道如何让它在底部显示页面链接。我希望有人能帮忙。 我有一个票证表,所有数据都从数据库加载到表中。我使用?page=1、?page=2等方式在其上创建页面。但是,如何在底部有下一页、上一页、最后一页、某个页面中的某个页面等的位置创建页面 完成这一切的代码是: 我怎样才能让它显示链接到每个页面只是一个简单的1,2等在底部?我不能自己创建它们,因为我不知道有多少页面和内容。当你在某个页面上时

这个问题得到了回答。看看回答我问题的答案

编辑: 我还是不知道该怎么做。有人能帮忙吗?我知道这叫做分页,但我不知道如何让它在底部显示页面链接。我希望有人能帮忙。 我有一个票证表,所有数据都从数据库加载到表中。我使用?page=1、?page=2等方式在其上创建页面。但是,如何在底部有下一页、上一页、最后一页、某个页面中的某个页面等的位置创建页面

完成这一切的代码是:
我怎样才能让它显示链接到每个页面只是一个简单的1,2等在底部?我不能自己创建它们,因为我不知道有多少页面和内容。当你在某个页面上时,如果链接可以变成灰色的不可点击的文本,那就太好了。有人在页面功能方面帮了我,但他们没有联机,因此无法帮助我。我不太擅长PHP,但有人知道如何做到这一点吗?

好的,通常可以这样做:

if (isset($_GET["page"])) {
     $currentPage = $_GET["page"];
}
else {
     $currentPage = 1;
}
好的开始。要获得页数,您需要以每页的db/items为单位计算记录数

$count = mysql_query("SELECT COUNT(id) FROM tickets"); //yop, it's kind of shortcut
$pages = ceil($count/$itemsPerPage);
好的,生成菜单的页码,比如说我们想要<1。。。3 4 5... last>->其中$currentnpage=4:

$menu = array();  //array indexes are strings to make this clearer, it normally should be $menu[] = $sth; to preserve adding order which is important here
if($currentPage > 1) {
     $menu['previous'] = $currentPage - 1;
}
$menu['first'] = 1;
if($currentPage > 3) {
     $menu['dots'] = 0;         
}
else if($currentPage == 3) {
     $menu['oneBeforeCurrent'] = $currentPage - 1;
     $menu['current'] = $currentPage;
}
else if($currentPage == 2) {         
     $menu['current'] = $currentPage;
}
$menu['oneAfterCurrent'] = $currentPage + 1;
。。。这越来越复杂了,也许有更好更快的方法,但你可以看到如何做到,而不是应该如何做到。它不完整,但是。。。你知道怎么做: 我希望你的意思是,你不能创建菜单。。。如果你有一个带有数字的数组,只需循环并创建带有数字的html链接,然后将。。。而不是0

干杯

-编辑- 聊天后,解决方案包括向查询添加限制,而不是使用$x来防止显示某些行,如下所示:

运行以下代码,因为它可以自己工作,所以它可能会给您一个想法:

<style>span{background:#ccc;padding:2px 6px;margin:0 2px;}</style>

<?php
    $currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
    $totalPages = 5; //this must be fetched from the db

    //define previous and next
    $previous = ($currentPage > 1) ? $currentPage - 1 : false; 
    $next = ($currentPage < $totalPages) ? $currentPage + 1 : false;

    //here we'll save the resulting code
    $pagination = array();
    //first
    $pagination[] = ($currentPage == 1) ? "First" : "<a href='?page=1'>First</a>";
    //previous
    $pagination[] = $previous ? "<a href='?page=$previous'>Previous</a>" : "Previous";
    //current/total
    $pagination[] = "Page $currentPage / $totalPages";
    //next
    $pagination[] = $next ? "<a href='?page=$next'>Next</a>" : "Next";
    //last
    $pagination[] = ($currentPage == $totalPages) ? "Last" : "<a href='?page=$totalPages'>Last</a>";

    //show it
    foreach($pagination as $part){
        echo "<span>$part</span>";
    }
?>

您要做的就是分页。在搜索php分页时,有很多好的答案,值得一试。一个很好的例子:@Pekka哦,谢谢!:我不知道这叫做分页,所以我不知道该搜索什么。谢谢你的链接。嗯,我还是有点困惑。什么会使链接显示取决于有多少页面?我会自己写,但我不知道链接代码和其他东西放在哪里。@Pekka我仍然不知道如何显示页面链接。我只想让它说第一页,上一页,下一页,最后一页,然后再翻页。我不需要它来显示我尝试使用它的所有页面:但是我无法让它与上面的代码一起工作。那个帮我把它们分成几页的人不知道如何显示页码。我认为我当前的分页代码是不正确的,可能需要以不同的方式完成。有什么想法/建议吗?在计算$count时,查询末尾缺少一个。你写的和我做的差不多,不过我用的不是数组而是字符串。谢谢你的回答:这会让它显示出类似的东西吗?而且,derp是对的——你错过了一个机会;Thx,我想知道为什么语法着色会出错。。。现在我知道了,因为错过了真棒,谢谢。但是,如何从数据库中获取号码?我是否使用@f1ames的SELECT count*FROM。。。?还有,这会不会让它变成这样:我无法让这个方法与我的方法一起工作,我会尝试将你的方法添加到我的方法中:是的,你需要像@f1ames显示的那样做。一个问题是,你有一个if/elseif/else,但是看起来里面唯一改变的是查询,而不是你以后显示的表,如果是这样的话,那么只在if/elseif/else里面改变查询,然后只把while放一次。好吧,这是为了让你只能显示关闭的票据,活动票据,当然还有所有的票。您可以在这里看到它,如果您想更改页面,请将URL中的?page=1更改为另一个数字。目前,只有2个页面,我认为整个页面功能需要以不同的方式完成,这对我来说很好。只要我能让它工作:我这样做是为了只显示关闭的票还是只显示活动的票?哦,我明白你的意思了。那么只需在所有查询之后放置while循环,然后只放置查询?好主意,这将使分页更容易合并,不是吗?请看这里检查标题,第一个是您当前如何拥有它,第二个是如何实现它,基本上没有必要包括while循环,将表打印3次,只需为查询创建一个变量。还有一件事,现在我更加注意了,您试图使用$startpoint进行分页?你必须使用SQL关键字限制,现在我知道你为什么不知道去哪里了,告诉我,你想要多少票 每页显示多少?
<style>span{background:#ccc;padding:2px 6px;margin:0 2px;}</style>

<?php
    $currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
    $totalPages = 5; //this must be fetched from the db

    //define previous and next
    $previous = ($currentPage > 1) ? $currentPage - 1 : false; 
    $next = ($currentPage < $totalPages) ? $currentPage + 1 : false;

    //here we'll save the resulting code
    $pagination = array();
    //first
    $pagination[] = ($currentPage == 1) ? "First" : "<a href='?page=1'>First</a>";
    //previous
    $pagination[] = $previous ? "<a href='?page=$previous'>Previous</a>" : "Previous";
    //current/total
    $pagination[] = "Page $currentPage / $totalPages";
    //next
    $pagination[] = $next ? "<a href='?page=$next'>Next</a>" : "Next";
    //last
    $pagination[] = ($currentPage == $totalPages) ? "Last" : "<a href='?page=$totalPages'>Last</a>";

    //show it
    foreach($pagination as $part){
        echo "<span>$part</span>";
    }
?>