dポイントプレゼントキャンペーン実施中!

同じようなトピックは、いくつかありましたが、あと一歩、わからないので質問させてください。

CSVファイルをPHPを使って読み込み、出力させる場合で、

CSVファイル data.csv
---------------------------
データ1,説明,詳細
データ2,説明,詳細
データ3,説明,詳細
データ4,説明,詳細
データ5,説明,詳細
  …
データ100,説明,詳細
---------------------------
上記のように100行あったとします。
この時、
PHPファイルを、
---------------------------
<?php

$fp = fopen("data.csv", "r");

while ($data = fgetcsv($fp, 10000)) {
$num = count ($data);
print <<<EOD
$data[0]・$data[1]・$data[2]<br>
EOD;

}

fclose ($fp)
?>
---------------------------

と書くと、100行目まで普通に出力してしまいます。

もし、10行目までを出したい場合は、どう記述すればよいのでしょうか?
上記のPHPソースに少し書き加える形で解決できればと思うのですが・・・
色々試しましたが、私の力だけでは無理でした。

A 回答 (2件)

こんにちは。



考え方はあってます。

>$count = $count++ ;


$count++;
または
$count = $count + 1;
にすればwhileを抜けてくれると思います。

現状で$countを表示してみるとわかりますが、$countは加算されていません。
    • good
    • 0
この回答へのお礼

ありがとうございます!
上記のやり方で解決しました。

ループ処理関係や「加算していく」・・・等々の処理がまだまだ苦手なので、これから勉強していきたいと思います。

この度はありがとうございました。

お礼日時:2005/08/30 17:14

こんにちは。



><?php

>$fp = fopen("data.csv", "r");
>
>while ($data = fgetcsv($fp, 10000)) {
>$num = count ($data);
>print <<<EOD
>$data[0]・$data[1]・$data[2]<br>
>EOD;
>

>}

>fclose ($fp)
>?>

すこし書き加えるだけでしたら$countという変数を用意して
1行ごとに加算していき、規定回数になったらwhileを抜けるようにすれば
よいのではないのでしょうか。

それか、whileでなくforを使って規定回数繰り返す方法もどうでしょうか。

この回答への補足

ありがとうございます。次のように書き換えてみましたが・・・

<?php

$fp = fopen("data.csv", "r");
$repeat = 10; //表示する件数
$count = 1;

while ($data = fgetcsv($fp, 10000)) {
if ($count > $repeat) { break; }
print <<<EOD
$data[0]・$data[1]・$data[2]<br>
EOD;

$count = $count++ ;

}

fclose ($fp)
?>

わからないなりに(メチャメチャですが・・・)書いてみましたが、これでも全行表示されてしまいました。。具体的にどこがどういけないのか教えてくださればと思います。。

補足日時:2005/08/30 16:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!