1

私はPHPが初めてで、ページネーションオプションを使用してWebページにCSVデータを表示しようとしています.これは私がこれまでに持っているコードです.

<?php

$names = file('demo.csv');
$page = $_GET['page'];

//constructor takes three parameters
//1. array to be paged
//2. number of results per page (optional parameter. Default is 10)
//3. the current page (optional parameter. Default  is 1)
$pagedResults = new Paginated($names, 20, $page);
echo "<ul>";
while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates
    $row1 = str_replace( ',', "\t", $row );
    echo "<li>{$row1}</li>";
}

echo "</ul>";

//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();
?>

出力にコンマが表示されるという問題がありました。ただし、str_replace 関数を使用して解決しました。ここで、データを表形式でエレガントに表示したいと思います。別のリンクで見た以下のコードを試しました。

while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates
    <table>
    <tr>
    $row1 = str_replace( ',', "\t", $row );
    <td><?php echo "<li>{$row1}</li>";?></td>
    </tr>
    </table>
}

echo "</ul>";

ただし、画面に出力が表示されません。誰かが私を正しい方向に導いてくれますか?

4

3 に答える 3

1

テーブルがループに正しく配置されていません。

次のコードを参照してください。

<table><?php
while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates

?>
<tr>
  <?php  
    $row1 = str_replace( ',', "\t", $row );
        ?>
    <td><?php echo $row1;?></td>
        </tr>
        <?php   
}

?></table>
于 2013-10-01T17:40:53.413 に答える
1
<?php

$names = file('demo.csv');
$page = $_GET['page'];

//constructor takes three parameters
//1. array to be paged
//2. number of results per page (optional parameter. Default is 10)
//3. the current page (optional parameter. Default  is 1)
$pagedResults = new Paginated($names, 20, $page);

echo "<table border=\"1\">";
//use the following line to manually display column names, 
//if they're not in the 1st row of the CSV file
echo "<tr><td>Column 1 name</td><td>Column 2 name</td><td>Column 3 name</td></tr>";
while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates
    echo "<tr><td>";
    $row1 = str_replace( ',', "</td><td>", $row );
    echo $row1;
    echo "</td></tr>";
}

echo "</table>";

//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();
?>
于 2013-10-01T17:37:39.827 に答える
1

HTML と PHP を少しずつ混合しています。次のように修正します。

while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates
    echo "<table>";
    echo "<tr>";
    $row1 = str_replace( ',', "\t", $row );
    echo "<td>";
    echo "<li>{$row1}</li>";
    echo "</td>";
    echo "</tr>";
    echo "</table>";
}

echo "</ul>";

またはこのように:

while($row = $pagedResults->fetchPagedRow()) {
//when $row is false loop terminates
?>
    <table>
    <tr>
    <?php $row1 = str_replace( ',', "\t", $row ); ?>
    <td><?php echo "<li>{$row1}</li>";?></td>
    </tr>
    </table><?php
}

echo "</ul>";

最初のものは、はるかに読みやすいため、明らかに優先されます。

于 2013-10-01T17:39:58.123 に答える