プロが教える店舗&オフィスのセキュリティ対策術

物販サイトで、CSVでデータを作成(商品名、写真、説明、価格など)しPHPで読み込み表示、しています。
PHPは初心者のため、現在は while を使って表示させているのですが、これだと表示が縦一列になってしまいます。
これを下のように縦三列に表示させるにはどのようにすればいいのでしょうか。

商品1 商品2 商品3
商品4 商品5 商品6

A 回答 (3件)

あー、テーブルですか。


<?php
// ファイル名
$fname = "csv.dat";

// ファイルを開く
$file = fopen($fname, "r");

echo "<table border=1>";
// データ出力
$a=0;
while (list($name, $fot, $bun, $kakaku) = fgetcsv($file, 10000, ","))
{
if($a==0){
echo "<tr>";
}
if ($name == TRUE) {
echo "<td width=33%>";
echo "<div class=box4-waku>";
echo "<p class=name>$name</p>";
echo "<p align=center> $fot</p>";
echo "<p class=setsumei>$bun</p>";
echo "<br />";
echo "<p class=kakaku>$kakaku 円(税込)</p>";
echo "</div>";
echo "</td>";
$a++;
}
if($a==3){
echo "</tr>";
$a=0;
}
}
echo "</table>";
// ファイルを閉じる
fclose($file);
?>
こんな感じでどうでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます。
思っていたとおりのサイトができました。
感謝感謝です。

お礼日時:2010/01/15 23:25

>表示が縦一列になってしまいます。


どんな書き方をしてるのか分からないのでアレですが、表示部分がブロックレベルだからでは?
単純にインライン要素にするとかfloat:leftで並べるとか方法はいろいろですね。
PHPというより、CSSの書き方の問題かもしれませんよ。

この回答への補足

すみません。もっと詳しく書くべきでした。
要は次のような感じにしたいのですが、これだと左、中、右のすべてに同じデータが入ってしまいます。
1番目のデータを左、2番目のデータを中、3番目のデータを右、4番目のデータを左の二段目という風に順次表示するようにしたいのです。

<?php
// ファイル名
$fname = "csv/index.csv";

// ファイルを開く
$file = fopen($fname, "r");

// データ出力
while (list($name, $fot, $bun, $kakaku) = fgetcsv($file, 10000, ","))
{
// 左
echo "<table border=0>";
echo "<tr>";
echo "<td width=33%>";
if ($name == TRUE) {
echo "<div class=box4-waku>";
echo "<p class=name>$name</p>";
echo "<p align=center> $fot</p>";
echo "<p class=setsumei>$bun</p>";
echo "<br />";
echo "<p class=kakaku>$kakaku 円(税込)</p>";
echo "</div>";
}
echo "</td>";

// 中
echo "<td width=33%>";
if ($name == TRUE) {
echo "<div class=box4-waku>";
echo "<p class=name>$name</p>";
echo "<p align=center> $fot</p>";
echo "<p class=setsumei>$bun</p>";
echo "<br />";
echo "<p class=kakaku>$kakaku 円(税込)</p>";
echo "</div>";
}
echo "</td>";

// 右
echo "<td width=33%>";
if ($name == TRUE) {
echo "<div class=box4-waku>";
echo "<p class=name>$name</p>";
echo "<p align=center> $fot</p>";
echo "<p class=setsumei>$bun</p>";
echo "<br />";
echo "<p class=kakaku>$kakaku 円(税込)</p>";
echo "</div>";
}
echo "</td>";
echo "</tr>";
echo "</table>";
}

// ファイルを閉じる
fclose($file);
?>

補足日時:2010/01/14 23:10
    • good
    • 0

while (<なんたら>) {


print "商品";
if($i%3 == 0) { print "<br>"; }
$i++;
}
とかやればいいとおもいます。
    • good
    • 0

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