[英]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.