#!/usr/local/ymir/perl/bin/perl use strict; use warnings; use Tripletail qw(books.ini); #use Tripletail qw(books.ini Debug); $TL->startCgi( -main => \&do_work, -DB => 'DB', ); our $DB; sub do_work { $DB = $TL->getDB; $TL->dispatch($CGI->get('Command') || 'List') or &DispError; } sub DispError { $TL->print('dispatch error.'); } sub DoList { &DispList; } sub DispList { my $t = $TL->newTemplate('books_list.html'); my $sth = $DB->execute(q{ SELECT * FROM books }); while(my $data = $sth->fetchHash) { my $author_lastname = $DB->selectAllArray(q{ SELECT last_name FROM book_authors INNER JOIN authors USING (author_id) WHERE book_id = ? }, $data->{book_id}); $data->{authors} = join(', ', map { $_->[0] } @$author_lastname); $t->node('books')->add($data); } $t->expand(TITLE => 'Book List'); $t->flush; }