0

同じフォルダー内の .csv ファイルを読み取り、テーブルを html に出力する php コードを処理しています。ファイルには多くの行が含まれているため、テーブルを特定の行数 (たとえば 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);
 }
 ?>
4

2 に答える 2

1

やりたいことは、start のような GET パラメータを渡し、それを使用して 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>

明らかに、これは堅牢で安全なソリューションではありません。開始変数が数値であることを確認するチェックを追加し、境界チェックを追加する必要があります。

于 2013-01-03T18:56:27.107 に答える
1

$rowの値を使用して制限できます。

コードは次のようになります。

if ($row == 50):
    break; //exits while loop
endif;
于 2013-01-03T18:58:36.783 に答える