A lot of people think that by using the prepare/execute/fetch cycle they will be able to fetch only one row at a time. This is not always true. You may have to specify a bit more in order to achieve that ... but, even if you did only fetch one row at a time, this would hog up the CPU from other processes and you still have to send at least twice the amount of data to the browser (data wrapped in HTML). It is not always to the best thing to do, but it is good when you know you will be dealing with millions and millions of records. I recommend running a packet sniffer on the database port to see if all rows are being returned at once, or one row at a time.

Now, time for a rant. You are printing one line of HTML at a time. This is Perl, not Java! ;)

use strict; use warnings; use DBI; use CGI::Pretty qw(:standard); my $dbh = DBI->connect( qw(DBI:driver:database:host user pass), {RaiseError=>1}, ); my $sth = $dbh->prepare('select id,name from director order by name'); $sth->execute; my $users = $sth->fetchall_arrayref({}); print header, start_form('select_user'), popup_menu('user', [ map $_->{id}, @$users ], undef, { map {$_->{id} => $_->{name}} @$users }, ), p(submit), end_form, ;
For the record, even if i used HTML::Template for this, i would still use CGI.pm's popup_menu(). Once you get the hang of it, it doesn't seem as daunting as it really is. ;)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

In reply to 3Re: Stuck on an idea.. by jeffa
in thread How to put links in a scroll box? by sulfericacid

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.