亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓分頁在 PHP 中拋出 csv 文件?

如何讓分頁在 PHP 中拋出 csv 文件?

PHP
慕碼人8056858 2021-10-15 10:30:09
我有一個 csv 文件,里面有一些數據。當用戶在搜索欄中鍵入內容時,它會返回相關數據但這些結果太多,我想分頁。我不知道,google了很多但找不到方法。請幫忙。$filename = "Database.csv";            $delimiter = ",";            if (!file_exists($filename) || !is_readable($filename))                return false;            if ($delimiter == ',') {                $csv = array_map('str_getcsv', file($filename));            } else {                $lines = file($filename);                $line_num = count($lines);                $dm = [];                $csv = array_map('str_getcsv', $lines, array_pad($dm, $line_num, $delimiter));            }            array_walk($csv, function (&$row) use ($csv) {                $row = array_combine($csv[0], $row);            });            array_shift($csv);            $total_row_of_csv = count($csv);            $total_row = 0;            for ($i = 0; $i < $total_row_of_csv; $i++) {                if (preg_match("/$value/i", $csv[$i]['Catagory'])) {                                                                               echo "<tr>";                        echo "<td>" . $csv[$i]['Ref'] . "</td>";                        echo "<td>" . $csv[$i]['Catagory'] . "</td>";                        echo "<td>" . $csv[$i]['JobTitle'] . "</td>";                        echo "<td>" . $csv[$i]['Description'] . "</td>";                        echo "<td>" . $csv[$i]['Salary'] . "</td>";                                                echo "<td>" . $csv[$i]['Nature'] . "</td>";                        echo "</tr>";                                            $total_row++;                    }                                                                          }
查看完整描述

1 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

獲?。篿ndex.php?page=2&search=purchasing


清除 page=1 以進行新搜索


這個功能是用get方法完成的,而不是post,你可以通過適當的方式來做post


<?php 

            // you can make this as post as you want

            // i have made this as a get param function


            $value = !empty($_GET['search']) ? $_GET['search'] : '';

            $filename = "Database.csv";

            $delimiter = ",";

            if (!file_exists($filename) || !is_readable($filename))

                return false;


            if ($delimiter == ',') {

                $csv = array_map('str_getcsv', file($filename));

            } else {

                $lines = file($filename);

                $line_num = count($lines);

                $dm = [];


                $csv = array_map('str_getcsv', $lines, array_pad($dm, $line_num, $delimiter));

            }


            array_walk($csv, function (&$row) use ($csv) {

                $row = array_combine($csv[0], $row);

            });


            array_shift($csv);

            $total_row_of_csv = count($csv);

            $countForPage = 0;

            for ($i = 0; $i < $total_row_of_csv; $i++) {

                    //var_dump($csv[$i]['Catagory']);die();

                    // didint get the $value so commented id

                    if (preg_match("/$value/i", $csv[$i]['Catagory'])) { 

                        $countForPage ++;

                    }

            }

            $countForPage;


            $numPerPage = 10;

            $numCurrPage = !empty($_GET['page']) ? $_GET['page'] : 1;

            $numFromCnt = $numPerPage * ($numCurrPage - 1);

            $numLastCnt = $numFromCnt + $numPerPage ;




            $total_row = 0;

            echo "<table>";

            for ($i = 0; $i < $total_row_of_csv; $i++) {


                    //var_dump($csv[$i]['Catagory']);die();

                    // didint get the $value so commented id

                    if (preg_match("/$value/i", $csv[$i]['Catagory'])) { 

                        //echo $total_row .">=". $numFromCnt ."&&". $total_row ."<". $numLastCnt; //die();

                        if($total_row >= $numFromCnt && $total_row < $numLastCnt) {                                                      

                        echo "<tr>";

                        echo "<td>" . $csv[$i]['Ref'] . "</td>";

                        echo "<td>" . $csv[$i]['Catagory'] . "</td>";

                        echo "<td>" . $csv[$i]['JobTitle'] . "</td>";

                        echo "<td>" . $csv[$i]['Description'] . "</td>";

                        echo "<td>" . $csv[$i]['Salary'] . "</td>";                        

                        echo "<td>" . $csv[$i]['Nature'] . "</td>";

                        echo "</tr>";                    


                     } 

                     $total_row++;

                    }


                }

                //echo $total_row;die();


            echo "</table>";


            $links = generateLinks($countForPage, $numCurrPage, $numPerPage, $value);


            echo $links;


        function generateLinks($total_row_of_csv, $numCurrPage, $numPerPage, $search){

            $pagLink = '';

            if($numCurrPage > 1) {

                $pagLink .= "<li class='active'><a href='csv_pagination.php?page="

                                                .($numCurrPage-1)."&search=".$search."'>Prev</a></li>";

            }

            // for ($i=1; $i<=$total_row_of_csv; $i++) { 

            //     if ($i==$numCurrPage) { 

            //         $pagLink .= "<li class='active'><a href='csv_pagination.php?page="

            //                                     .$i."'>".$i."</a></li>"; 

            //     } else  { 

            //         $pagLink .= "<li><a href='csv_pagination.php?page=".$i."'> 

            //                                     ".$i."</a></li>";   

            //     } 

            // } 


            if($numCurrPage < ($total_row_of_csv/$numPerPage)) {

                $pagLink .= "<li class='active'><a href='csv_pagination.php?page="

                                                .($numCurrPage+1)."&search=".$search."'>Next</a></li>";

            }

            return $pagLink;

        }

?>


查看完整回答
反對 回復 2021-10-15
  • 1 回答
  • 0 關注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號