スーパーカーの例を使って、簡単なリレーショナルデータベースを作ってみましょう。
リレーショナルデータベースの考え方は、Perl編のページを見て下さい。
ポイントは、連想配列を使うことです。CGI全体を見ましょう。
1: #! /usr/local/bin/ruby
2:
3: HTML1 = "<HTML><HEAD><TITLE>スーパーカー</TITLE></HEAD><BODY>
4: <H2>スーパーカー</H2><TABLE BORDER>
5: <TR><TH>メーカー</TH><TH>名前</TH><TH>排気量</TH><TH>馬力/回転</TH><TH>最高速度</TH></TR>"
6:
7: HTML2 = "</TABLE></BODY></HTML>"
8: makername = Hash.new()
9: makerurl = Hash.new()
10: table = []
11:
12: filem = open('maker.text', 'r')
13: linesm = filem.readlines()
14:
15: filec = open('car.text', 'r')
16: linesc = filec.readlines()
17:
18: for linem in linesm
19: key, name, url = linem.split("\t")
20: makername[key] = name
21: makerurl[key] = url
22: end
23:
24: for linec in linesc
25: key, name, engine, power, speed = linec.split("\t")
26: tline = "<TR><TD><A HREF=\"#{makerurl[key]}\">#{makername[key]}</A></TD>
27: <TD>#{name}</TD><TD>#{engine}</TD><TD>#{power}</TD><TD><B>#{speed}</B></TD></TD>\n"
28: table = table.push(tline)
29: end
30:
31: print "Content-Type: text/html\n\n"
32: print HTML1
33: print table
34: print HTML2
注意点だけ述べます。
7、8行目で、空の連想配列を作るために、Rubyでは「Hash.new()」というメソッドを使います。
18、24行目で、前回発見した、split関数から配列の要素を個別に取り出す方法を使ってます。
25、26行目は、変数を文字列に含ませる方法を使ってます。