【问题标题】:pagination php without mysql (or any other database)没有mysql(或任何其他数据库)的分页php
【发布时间】:2014-03-21 20:31:56
【问题描述】:

您好,我对 php 和其他东西还很陌生,所以我正在尽力而为

我有一个包含 200 多张图片的网站,我想将它们分成页面,所以我尝试分页,但我只有图片而不是数据库,所以我的代码到目前为止

   $iPicturesPerSite = 10;

    $output = '';
    $files = glob('../images/'.$sSearchFor.'*.{jpg,png,gif}',GLOB_BRACE);

    $iSite = 1;
    if(isset($_GET['iSite']) && is_numeric($_GET['iSite']) && $_GET['iSite'] > 0){
        $iSite = $_GET['iSite'];
    }
  $iMaxBildNummer = $iPicturesPerSite * $iSite;
    if($iMaxBildNummer > sizeof($files)){
        $iMaxBildNummer = sizeof($files);
    }
    for($i=(($iPicturesPerSite*$iSite)-$iPicturesPerSite); $i<$iMaxBildNummer; $i++){
        $size = getimagesize($files[$i]);
        $output = $output.$this->_simpleTpl("tpl/item.tpl",array(
                'showName'=> basename($files[$i]),
                'imagewidth' => $this->width,
                'fileName'=>'images/'.basename($files[$i]),
                'resolution'=>$size[0]."x".$size[1],
                'fileSize' => round(filesize($files[$i])/1024),
                'link' => '.link to file='.$files[$i]));
  }
    return $output;
}

到目前为止,我只能在第一页看到 10 张图片(取决于我在 iPicturesPerSite 中放入的内容)。但现在我需要添加 next/prev 链接行,我需要将图片拆分为链接。

我从 2 天开始就在尝试,但这就是我所得到的,而且我并没有变得更好:(任何链接/帮助都会很好。(这不是完整的代码,我还有一些其他的东西,它是一个 html + php 数据,所以我不在 html 数据中使用任何 php 代码)

试过了,但没有用。我认为我仍然需要更多地学习 php,因为我不知道该怎么做。还是谢谢

编辑:

     $total_data = count($files);       


        $page = isset($_GET['page'])?intval($_GET['page']):1;     // GETTING PAGE NUMBER FROM URL

        if(empty($page) || $page==1) {
            $start_val = 0;
            $end_val = $iPicturesPerSite - 1;
        }
        else {
            $start_val = ($page * $iPicturesPerSite) - $iPicturesPerSite;
            $end_val = $start_val + ($iPicturesPerSite - 1);
        }




        for($i=$start_val;$i<=$end_val;$i++){
            echo $files[$i].' ';
        }


        $less_than = $total_data/$iPicturesPerSite;
        if($less_than>intval($less_than)) $less_than = $less_than + 1;

        if($total_data>1) {
            echo '<div class="pagination">';
            echo ($page-1)>0?'<a href="?page='.($page-1).'">Previous</a>&nbsp;':'Previous&nbsp;';
            for($i=1;$i<=$less_than;$i++){
                if($page==$i) echo '<a class="paginator linkno">';
                else echo '<a href="?page='.$i.'" class="paginator">';
                echo $i;
                echo '</a>&nbsp;';
            }
            echo ($page+1)<=$less_than?'<a href="?page='.($page+1).'">Next</a>':'Next';
            echo '</div>';
        }

几乎。现在我有正确的数字,但我只能看到 1 张图像,其余的都在 char 中(不是图片,它更多 ../images/ui-bg_diagonals-medium_20_d34d17_40x40 - Kopie (2).png ../images/ui-bg_d)

【问题讨论】:

  • 也许您可能希望输出每页的全部 200 张图片,然后使用 JavaScript 隐藏/显示它们,从而模拟分页。
  • 为什么不用mysql?您可以在 csv 文件中管理它,对吗?
  • 喜欢 facebook?不,我想这样放置 > 10 张图片/页或更多。我会在以后决定多少,但首先我需要为它创建函数。我现在不知道如何开始,我还在学习。没有 mysql,因为我现在不使用任何数据库,我只有一个装满图像的文件夹。
  • @Piskvor 这种方式会显着减慢您的应用程序加载时间,因为您需要为每个图像发出单独的请求。我不建议对图像执行此操作。
  • 为什么我投了反对票?我真的尽我所能,在过去的几天里我已经搜索了很多。我只在这里寻求帮助,因为我不知道该怎么做。

标签: php pagination


【解决方案1】:

我不确定您是否自己编写了此代码,但我注意到内置的分页技术。 iSite 基本上是您的页码,您必须使用它来构建下一个/上一个链接。

下一页链接为page.php?iSite=&lt;?php echo $iSite+1 ?&gt;

对于以前,它将是 page.php?iSite=&lt;?php echo $iSite-1 ?&gt;

【讨论】:

  • 是的,我在过去 2 天内自己做过(我现在使用 php 3-4 周,这对我来说很难)谢谢你我会试一试
  • 我检查了您的编辑。您应该在for 循环之外使用echo
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2021-10-23
  • 2012-05-03
  • 2016-09-20
  • 2017-05-07
相关资源
最近更新 更多