このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

データベースをWEB上で複数列で表示させる方法について

発言者:さやぴー
( Date Tuesday, February 06, 2001 16:50:10 )


データベースの検索結果をWEB上で複数列で表示させようと思い
あれこれ試していますが、なかなかうまくいきません。
たとえば、検索した結果10個見つかった場合、5個ずつを2列で
表示させるにはどのように記述すればよいのかどなたか教えて
いただけませんか。

はて? さんからのコメント
( Tuesday, February 06, 2001 18:20:59 )

さやぴーさんへ。
一列だったら、できているのでしょうか?
どのように実現しましたか?
概要を書かないと援助のしようもありません。
おしえてください。

パルサー さんからのコメント
( Tuesday, February 06, 2001 20:02:48 )

HTMLの記述の仕方のことでしょうか?
例えば検索結果の配列から要素を取り出して
表示する方法ということかなぁ。
表示を2列にするだけなら、TABLEで出来るし……。
う〜ん、こんな簡単な問題じゃないですよね、きっと。

さやぴー さんからのコメント
( Wednesday, February 07, 2001 02:27:25 )

コメント有難うございました。説明不十分ですみません。
とりあえず検索結果を10件表示させると、画像フィールドと
テキストフィールドを一つのグループとして縦に10件は表示
できるのですが、この10件を例えば横に3個ずつだと
4列ですみますよね。
このように、検索結果を配列させて表示させたいのです。
今だと、縦に10列になってしまい、ちょっと見にくくて
悪戦苦闘しております。
どなたかお助け下さい、よろしくお願いいたします。

よーちゃん さんからのコメント
( Wednesday, February 07, 2001 03:00:51 )

私も昔悩んだ事あります。
お使いになろうと思っているデータベースってなんですか?
それぞれ、対応の仕方は違いますから。
質問される場合には、情報は出し惜しみしないで全部出された方が
解決は早いですよ。

さやぴー さんからのコメント
( Wednesday, February 07, 2001 03:33:41 )

よーちゃん さん 早速のコメントを有難うございました。
当方、ただいま下記の設定でやっております。
この場合だと、1列でしか表示できません。
どうぞお助けを!!


<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2>[FMP-RECORD]
   <TR>
      <TD VALIGN=top WIDTH=50>
         <P><A HREF="[FMP-linkrecid:layout=美容, format=detail.htm]"><IMG SRC="[FMP-image:ジャケット写真]" ALT="イメージ写真" WIDTH=50 HEIGHT=70 BORDER=0 ALIGN=top></A>
      </TD>
      <TD>
         <P><A HREF="[FMP-linkrecid:layout=美容, format=detail.htm]"><FONT SIZE="-1"><B>[FMP-FIELD: タイトル]</B></FONT></A><B><BR>
         </B><FONT SIZE="-1">[FMP-FIELD: 説明]</FONT><BR>
         <FONT COLOR="#CC0000"><B><BR>
                     </B></FONT>
      </TD>
   </TR>[/FMP-RECORD]


コメントお待ちしております。

よーちゃん さんからのコメント
( Wednesday, February 07, 2001 04:06:52 )

ですから〜
お答えはしますけど〜
ちゃんと書いてほしいです。……

FMならテーブルに入れればいいです。
テーブルタグの構造を考えれば簡単です。

テーブルは td とtr だけですよね?
並べたい行数の数ごとに<tr>が入るようにすれば
いいだけですよ!

もし、商用でやってらしゃるんでしたら止めた方が
いいと思います。

Weasel さんからのコメント
( Wednesday, February 07, 2001 09:46:17 )

多分さやぴーさんは、こういう掲示板に初めて投稿されるのではないかと
思います。そのため、本人は全ての情報を提供しているつもりでも、
他の人から見ると十分でないと思われているのでしょうか?
(私も偉そうな事を言えませんが)

こういう掲示板に投稿するときには、少なくとも下記の情報を
提供願います。
・使用しているサーバー(多分この場合FMPのWebコンパニオン)
・使用している言語(多分この場合はHTMLとCDML)
・使用しているプログラムやCGI(多分この場合はFMP)
・どういうことをやりたいのか?
 (この場合は、「CDMLで、複数レコードを2列で表示されたい」かな?」
・どういう現象が生じているか?(この場合は「1列でしか表示されない」かな?)


上記の推測が当たっているという条件で、質問にお答えしたいと思います。


ファイルメーカーのWebコンパニオンは、検索結果を通常のファイルメーカー
のレイアウトではなく、HTMLにて出力します。そのときに、どういうHTML
(またはデータ)を出力するかを決定するのがCDMLという言語です。

まずは、HTMLの基礎知識を学び、テーブルタグとはどういう形で表現するか
を理解願います。(上記ソースをみて、これは何らかのHTMLレイアウト
ソフトを利用していると推測します。テキストエディタで制作したら、
もっときれいなソースになります)


1 <table>
2  <tr>
3    <td>あああ</td><td>いいい</td>
4  </tr>
5 </table>

上記のテーブルにもう一列追加する場合には、単純に2番目と3番目の行の
間に、3行目と同じ形式を挿入すれば良いのです。


1 <table>
2  <tr>
3    <td>あああ</td><td>いいい</td>
4    <td>ううう</td><td>えええ</td>
5  </tr>
8 </table>

この法則を利用して、複数列を表示するためにCDMLを利用します。

1 <table>
2  <tr>
3   [FMP-RECORD]
4     <td>あああ</td><td>いいい</td>
6   [/FMP-RECORD]
2  </tr>
8 </table>

こうすれば、レコードの数だけ列が表示されるはずです。

よーちゃん氏が「FMならテーブルに入れればいいです。テーブルタグの
構造を考えれば簡単です。」というのは、こういうことです。
「そんなことはわかっている」と思われるかもしれませんが、この点を
もう一度再確認してください。(コピーミスかもしれませんが、
最後の</table>が抜けています)

残る問題(というか、これが『メイン』だと思います)は、レコードが
2つ表示されたら、行の終わりと行の開始のタグ(</tr><tr>)をする
ためのコマンドだと思いますが、これは計算フィールドをうまく利用
すれば、対応できるかと思います。

PerlならすぐわかるのですがCDMLについては、もう2年ほどさわって
おらず、ほとんど忘れています。詳しいかた、どうかサポートを
お願いします。

さやぴー さんからのコメント
( Wednesday, February 07, 2001 11:02:44 )

Weasel さん
ご丁寧書いて下さって有難うございます。
書いてくださった内容については理解できました。有難うございます。
例を書いていただいた内容の部分で、たとえば"あ"という分類にはそれぞれ
個々のタイトルのついたものが、12件あった場合にはそれを最初の一列目に
4行表示させて二列目にまた4行表示させるといったぐあいにする場合は
どのようにすればよろしいでしょうか
宜しくお願いいたします。