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

アフィリエイト用のDBを作ろうとしています。
現在http://affiliate.aki-f.com/prog/cat/cat9.html
のサイトを参考に製作しているのですが、1行に1商品しか表示されず、
味気ないように感じています。1行に3商品ほど表示させたいのですが、
そのような場合どこをどのように変えればよいのでしょうか?
教えてください。

A 回答 (3件)

>同じ1つの商品が何十も連続で表示されてしまう



「元データがどのように格納されているのかによります」と前回かいたとおりです。
明確な回答が必要なら元データの形式を簡単に例示した方がいいでしょう

この回答への補足

回答ありがとうございます。
<?php
$Cid=$_GET['cid'];
$Data=file('cat.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode("? "? $Data[$i]);
if($line[0]==$Cid){
$CatTitle=$line[1];
break;
}
}
?>


<table border="1">
<tbody valign="top">
<?php
$Data=file('item.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode("? "? $Data[$i]);
if($line[1]==$Cid){
?>
<tr>
<td><?=$line[2]?></td>
<td>
<?=$line[3]?><br><br>
<a href="item.php?id=<?=$line[0]?>">詳細を見る</a>
</td>
</tr>
<?php
}
}
?>


原型はこのようなものを使い、
http://affiliate.aki-f.com/prog/sample/sample30/ …のようになります。
これに回答者様のプログラムを取り入れたいのですが、、

補足日時:2010/09/29 06:00
    • good
    • 0

元データがどのように格納されているのかによりますので例示は難しいですが


配列でもっているならこんな感じのフローで処理すればよいでしょう

<?
$arr=array("a","b","c","d","e","f","g");
$col=3;//好きな列数を指定する
print "<table border>\n";
for($i=0;$i<count($arr);$i+=$col){
print "<tr>\n";
for($j=0;$j<$col;$j++){
print "<td>".(isset($arr[$i+$j])?htmlspecialchars($arr[$i+$j]):"&nbsp")."</td>";
}
print "</tr>\n";
}
print "</table>\n";
?>

実際にはデータ判定の処理やサニタイズなど若干工夫が必要です。

この回答への補足

ご回答ありがとうございます。
同じ1つの商品が何十も連続で表示されてしまうのですが、
自分のミスでしょうか・・・

補足日時:2010/09/28 06:45
    • good
    • 0

表示する所をTableタグを使って3商品を出力できるように処理を変更すればいいです。


ページ制御もそれに合わせて修正するのを忘れずに。

この回答への補足

早速の回答ありがとうございます。
その方法を以前やってみたのですが、いまいちきれいに
並びませんでした。。。
できればタグの例などを教えてほしいです。
どうかよろしくおねがいします。

補足日時:2010/09/27 04:50
    • good
    • 0

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