CGI-BBS > データベース > 簡易データベース > 簡易データベースの改造で列を横にしたい。


カレッヂ
カレッヂ


質問者 もぐもぐ  投稿日 2004/7/22(木) 09:26:52
以下のようなデータがあるとします。
----------------------------------
1,果物,りんご,200,
2,果物,ばなな,100,
3,野菜,きゅうり,10,
4,果物,みかん,50,
5,野菜,なす,100,
----------------------------------

例えば、「果物」で検索された結果値は
────────────
1 │果物│りんご│200
────────────
2 │果物│ばなな│100
────────────
4 │果物│みかん│ 50
────────────

と表示されますがこれを

──────────
りんご |ばなな | 
──────────
みかん |    |
──────────

と表示したいのですが、方法が全くわかりません。
検索した結果に番号を振って、指定番号(例えば3列目で折り返し)
とかにすればうまくいくのかなぁとも考えていましたが、その
検索した結果に対して番号を振るのもよくわかりませんでした。

なにかヒントだけでもいただけると嬉しいです。
宜しくお願いいたします。

追伸
 改造はしていますが正しく動作しています。

プロバイダ参照:local
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:EMEDITOR
FTPソフト:NextFTP
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:middle

回答者 しあわせのツボ  [削除]  投稿日 2004/7/22(木) 19:12:23
foreach $data (@NEW) {
の直後に
++$i;
とでも置いて、これをカウンタにします。
<tr>を出力してる行と</tr>を出力してる行を探して、それぞれ
$iが奇数なら<tr>をprint;
$iが偶数なら</tr>をprint;
のようにします。
最後の行が途中で終わるとtableのセル数が合わなくなりますが、まあ大丈夫でしょう。
気持ちが悪ければ、必要なだけ空の<td>を出力するよう追加してください。
質問者 もぐもぐ  [削除]  投稿日 2004/7/22(木) 19:56:00
ありがとうございました!
おかげさまで思い通りに動作しました。

ただ・・・ただ・・・。
現状では5アイテム毎に改行したいと思っているので

if ( $i == '5' || $i == '10' || $i == '15' || $i == '20') {print "<tr>";}
と書くと、なんとなぁくスマートじゃないです(:_;)

なにか有効な方法がありましたら是非是非教えてください。
回答者 しあわせのツボ  [削除]  投稿日 2004/7/22(木) 20:53:42
%という演算子があります。
除算の「あまり」を求めるもので、たとえば89%5は4。
割り切れる時は0になるので、if($i%5==0)とすればお希美の動作になるでしょう。
<tr>開きタグの方も、同様に$i%5==1で。
質問者 もぐもぐ  [削除]  投稿日 2004/7/22(木) 20:58:36
なるほど!その通りですね。
おかげさまでスマートに完璧に思い通りに操ることができました。
ありがとうございました!

※小学校に戻って算数を勉強しなおします(泣)

このページは終了したので返信(回答)は書きこめません
 


Web裏技