php - 在我的 PHP 页面上限制我的 .csv 文件结果所需的分页

标签 php csv

在我的 csv 文件(“food.csv”)中,数据以 -ITEM、DESC、QTY、RATE、TYPE 的顺序存储。当我使用数组查找项目代码时,整个结果都在一页中。我需要的是结果应限制为每页 5 个案例以及“NEXT/BACK”。任何人都可以帮助我吗?否则请建议任何其他选择。 PHP 文件如下。

<?php
$handle = fopen("food.csv","r")or die("file dont exist");
$output = '  ';
while (!feof($handle )){
    $data = fgetcsv($handle, 4096, ",");
        if($data[0] ==100){
        $output .= sprintf( "<b>Fruit Name: %s.   </b><br>",  $data[1]);
        $output .= sprintf( "Quantity Avaliable:  %d  Kgs @ %d USD each.   <br>",  $data[2], $data[3]);
        $output .= sprintf( "Item code:  %d (Stock:  %s) <br><hr><br>", $data[4],$dara[0]);   
        }
}
echo $output;
fclose($handle);
?>

整个结果(12 个案例)都在一个页面中,例如:

Fruit Name: MANGO Quantity Available: 10 Kgs @ 500 USD each. Item code: 100 (Stock: OLD)

Fruit Name: APPALE Quantity Available: 12 Kgs @ 300 USD each. Item code: 100 (Stock: NEW)

Fruit Name: MANGO Quantity Available: 5 Kgs @ 650 USD each. Item code: 100 (Stock: NEW)

最佳答案

基本上你想要一个代表页面的变量,然后计算开始值和结束值。然后只输出在这些范围之间的日期。请原谅代码,我对 PHP 有点生疏。

<?php
$handle = fopen("food.csv","r")or die("file dont exist");
$output = '  ';
$numPerPage = 5;
$page = $_GET['page'];
$count = 0;
$start = $page * $numPerPage;
$end = ($page + 1) * $numPerPage;
while (!feof($handle )){
    $data = fgetcsv($handle, 4096, ",");
        if($data[0] ==100 && $count < $end && $count >= $start){
        $output .= sprintf( "<b>Fruit Name: %s.   </b><br>",  $data[1]);
        $output .= sprintf( "Quantity Avaliable:  %d  Kgs @ %d USD each.   <br>",  $data[2], $data[3]);
        $output .= sprintf( "Item code:  %d (Stock:  %s) <br><hr><br>", $data[4],$data[0]);

        if($count == $numPerPage) {
            if($page != 0) {
                $output .= '<a href="?page="' . ($page - 1) . '">BACK</a> ';
            }
            if(!feof($handle)) {
                $output .= ' <a href="?page="' . ($page + 1) . '">NEXT</a>';
            }
        }

        $count++
        }
}
echo $output;
fclose($handle);
?>

现在无法测试。如果您遇到问题,请告诉我。

关于php - 在我的 PHP 页面上限制我的 .csv 文件结果所需的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032141/

相关文章:

java - CSVParser 将 LF 处理为 CRLF

php - AWS MySQL 是否缓存数据?拉拉维尔 5

javascript - 即使检查了权限、限制和文件大小,Php 也无法打开流

python - 使用 pandas read_csv 缺少数据

python - 在 python 中使用 .csv 按特定列数据排序

Python:mmap 文件上的 csv.reader 工作不正确

php - Magento 中的“news_from_date”

php - 如何修复 C : mail() [function. 中的警告 : SMTP server response: 530 SMTP authentication is required. mail] :\xampp\htdocs\. 。第 22 行错误

php - 如何修复Page Insights利用Google Cloud,Docker,Nginx和Laravel进行缓存?

Postgresql:运行 SQL 查询脚本并导出到 csv