Here's my suggestion:
firstly use
Class::DBI for data access:
package Currency;
use base 'Class::DBI::mysql';
__PACKAGE__->set_db('Main', 'dbi:mysql:dbname', 'user', 'password');
__PACKAGE__->set_up_table("currency");
1;
Amongst (many) other things, this gives you an easy way to retreive all records in the currency table, or to retreive a particular record given its primary key. Class::DBI has very good documentation.
Now you can use it like this in the view component:
<h3>Currencies:</h3>
<table cellpadding=2>
<tr id=tableheadcolor>
<th>Currency</th>
<th>Cid</th>
</tr>
% while (my $currency = $iter->next) {
% $row++;
% $shadetable = ($row % 3 == 0 ? q{id="shadetable"} : "");
<tr <% $shadetable %>>
<td>$currency->currency</td>
<td>$currency->cid</td>
</tr>
% }
</table>
<%once>
use Currency;
my $iter = Currency->retrieve_all;
</%once>
<%init>
my $row=0;
my $shadetable;
</%init>
And like this in the form component:
<h3>Make a new currency entry</h3>
<form action="comp/insert.mas?form=add_currency" method="post">
<table cellpadding=2>
<tr>
<td align=right>Currency:</td>
<td><input name="currency" type="text" value="<% $currency_val
+ %>" size="5"></td>
</tr>
</table>
<input type="submit">
</form>
<& /view_currency.html &>
<%args>
$cid => 0
</%args>
<%init>
my $currency_val = "";
if($cid ) {
$currency_val = Currency->retrieve($cid)->currency;
}
</%init>
Finally, I'd strongly suggest reading the
Mason Book (the whole thing is available to read online).
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.