使用php脚本生成的html表的分页问题

时间:2013-01-03 18:47:19

标签: php html

我正在处理一个PHP代码,该代码读取同一文件夹中的.csv文件并在html中打印一个表。 由于文件包含很多行,我想将表限制为特定的行数(例如50)。 我真的不知道该怎么做,任何人都可以像我一样帮助新手吗?

 <?php

 $row = 1;
 if (($handle = fopen("myfile.csv", "r")) !== FALSE) {

echo '<table border="1">';

while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    if ($row == 1) {
        echo '<thead><tr>';
    }else{
        echo '<tr>';
    }

    for ($c=0; $c < $num; $c++) {
        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
            echo '<th>'.$value.'</th>';
        }else{
            echo '<td>'.$value.'</td>';
        }
    }

    if ($row == 1) {
        echo '</tr></thead><tbody>';
    }else{
        echo '</tr>';
    }
    $row++;
}

echo '</tbody></table>';
fclose($handle);
 }
 ?>

2 个答案:

答案 0 :(得分:1)

你要做的是传入一个GET参数,比如start,然后用它来设置for循环的起始编号

for ($c=0; $c < $num; $c++) {

然后变成类似

的东西
for ($c=$_GET['start']; $c < $_GET['start']+50 && $c < $num; $c++) {

然后在页面底部添加像

这样的链接
<a href="<?=$_SERVER['PHP_SELF']?>?start=<?=$_GET['start']-50 ?>">"><< Prev</a>
<a href="<?=$_SERVER['PHP_SELF']?>?start=<?=$_GET['start']+50 ?>">">Next >></a>

显然这不是一个强大/安全的解决方案,你需要添加检查以确保起始变量是一个数字,并添加边界检查。

答案 1 :(得分:1)

您可以使用$row的值来限制它。

代码看起来像这样:

if ($row == 50):
    break; //exits while loop
endif;