0

事実上の複製: How can I display data in table with Perl

そこで受け入れられた答えがここに適用されます。いくつかの代替案も同様です。


Perl プログラムから生のデータベース クエリを実行し、結果をユーザーに表示しようとしています。のようなものselect * from table。情報を HTML テーブルに表示したい。HTML テーブルの列は、返された列に対応します。

私はいくつかの問題を抱えています。クエリを実行describe tableして、テーブルにある列の数を返すことができます。しかし、返された結果の情報を配列に格納するにはどうすればよいでしょうか?

したがって、次のような結果を保存している場合:

while (($f1, $t2, $n3, $k4, $d5, $e6) = $sth1->fetchrow_array)

この場合、たとえば 4 つの列 (describe テーブルから取得) があることしかわかりません。ただし、この 4 番目は動的であり、テーブル名によって変わる可能性があります。この数値に基づいて変数を宣言することはできません。助言がありますか?

4

3 に答える 3

4

試す:

print "<table>\n";

# display HTML header
@cols = @{$sth->{NAMES_uc}};
print "<tr>".join("", map { "<th>${_}</th>" } @cols)."</tr>\n";

# display one HTML table row for each DB row
while (my @row = $sth->fetchrow_array) {
  print "<tr>".join("", map { "<td>${_}</td>" } @row)."</tr>\n";
}
print "</table>\n";
于 2009-02-23T06:47:30.893 に答える
2
while (my @row = $sth->fetchrow_array)
{
        print "<tr>".join("", map{ "<td>${_}</td>" } @row)."</tr>"  ;
}
于 2009-02-23T06:20:33.487 に答える
2

他の質問への回答で提案されている手法を使用してください - fetchrow_array を使用して配列にフェッチします。

while (my @row = $sth->fetchrow_array())
{
    ...process array...
}

fetchrow_array()または、 などの代替手段を使用しfetchrow_hashref()ます。

于 2009-02-23T06:21:41.237 に答える