繁体   English   中英

平面文件数据库的PHP分页脚本帮助

[英]Help With PHP Pagination Script For Flat File Database

我发现了一些有关平面文件数据库的PHP分页脚本的问题。 我已经在下面发布了脚本。

<?php 
echo '<html><body>';

// Data, normally from a flat file or some other source  
$data = "Item1|Item2|Item3|Item4|Item5|Item6|Item7|Item8|Item9|Item10";  
// Put our data into an array  
$dataArray = explode('|', $data);  
// Get the current page  
$currentPage = trim($_REQUEST[page]);  
// Pagination settings  
$perPage = 3;  
$numPages = ceil(count($dataArray) / $perPage);  
if(!$currentPage || $currentPage > $numPages)  
    $currentPage = 0;  
$start = $currentPage * $perPage;  
$end = ($currentPage * $perPage) + $perPage;  
// Extract ones we need  
foreach($dataArray AS $key => $val)  
{  
    if($key >= $start && $key < $end)  
        $pagedData[] = $dataArray[$key];  
}

foreach($pagedData AS $item)  
    echo '<a href="/'. $item .'/index.php">'. $item .'</a><br>';

if($currentPage > 0 && $currentPage < $numPages)  
    echo '<a href="?page=' . ($currentPage - 1) . '">« Previous page</a><br>';  
if($numPages > $currentPage && ($currentPage + 1) < $numPages)  
    echo '<a href="?page=' . ($currentPage + 1) . '" class="right">Next page »</a><br>';

echo '</body></html>';
?>

我的第一个问题似乎在第9行。我可以将行更改为:

$currentPage = trim(@$_REQUEST[page]);

但是此更改无法修复错误,只会将其隐藏。 需要做什么到第9行才能消除我的页面错误?

其次,我想以另一种方式在第5行获取数据。 我想从一个文本文件中获取数据,我们将其称为“ items.txt”,其中包含如下条目,每行一个。

Fun
Games
Toys
Sports
Fishing
Pools
Boats

请推荐备用代码以获取所需的数据。

最后,我想包含指向“首页”和“最后一页”以及“上一页”和“下一页”的链接,以及当前代码。

我为我的草率文章表示歉意,但对任何可以帮助我理解产生所需结果的更改的人,我将深表感谢。 谢谢.....

第9行的问题

$_REQUEST[page]有两个独立的问题。

1)由于未引用page被读取为常量的名称。 PHP然后注意到有没有所谓的固定page ,所以它需要一个猜测,你的意思是串page -这将是,如果page被引用-并触发一个错误时通知您。 因此,请改用$_REQUEST['page']

2) 'page'不一定是$_REQUEST的键,因为不能保证会给出数据。 因此,在确保$_REQUEST['page']存在之前,您不能对其进行引用。 这可以通过isset($_REQUEST['page'])

然后,您的最终代码应如下所示。

if (isset($_REQUEST['page'])) {
    $currentPage = $_REQUEST['page'];
} else {
    $currentPage = 'some default value';
}

数据源问题

file()函数将file()的行读取到数组中-例如,数组的第四个值也是文件中的第四行。 因此,你可以设置$dataArray简称为$dataArray = file('text.dat');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM