2011-05-11 30 views
0

我有關於PHP分頁腳本對於平面文件數據庫,我發現了幾個問題。 我已經發布了下面的腳本。幫助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 

請推薦備用代碼來獲取所需的數據。

最後,我想包括指向「第一頁」和「最後一頁」以及「上一頁」和「下一頁」,爲的是當前的代碼。

我爲我的馬虎發帖道歉,但將是真正的讚賞人誰可以幫助我瞭解生產所需的我需要的結果的變化。謝謝.....

回答

1

問題,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()函數讀取文件的行成陣列 - 例如,所述陣列的第四值也是在該文件中的第四行。因此,您可以將$dataArray設置爲$dataArray = file('text.dat');

+0

謝謝!到現在爲止還挺好。我已經修復了所述的錯誤,現在我正在從文本文件中獲取數據。如果當前頁面URL包含它自己的查詢字符串呢?這將是一個問題,對嗎?那麼該怎麼辦? – mobilestimulus 2011-05-11 18:55:59

+0

我不完全瞭解你的新問題。至於Stackoverflow的性質,分別詢問每個問題是非常有益的。否則,這使得未來的搜索者很難找到答案。 – erisco 2011-05-11 19:31:42

+0

假設這個腳本顯示在一個名爲site.com/index.php?member=156的頁面上,點擊Next Page鏈接後,成員變量將會消失。這有幫助嗎? – mobilestimulus 2011-05-11 20:25:13