|
From: Andrew S. <an...@me...> - 2001-02-07 07:03:12
|
You mean code sorta like this:
wilbur_init::header("Entries", $entID);
print "<img src=3Dentrylist.png alt=3D\"List\"><br><hr>\n";
$FORM{lim}|=3D 0;=09
my $qq=3D"select blah,blah,blah=20
from entries
where blah=3Dblah';
if($CONFIG{sqllimit} =3D=3D 1) {
# this presuposes a limit statement in postgresql, but
# I think it has them. If it doesn't it can be coded
# around anyway.
$qq .=3D "limit $FORM{lim}, $PREF{pListNum}";
} else {
my $tlim =3D $FORM{lim} + $PREF{pListNum};
$qq .=3D "limit $tlim";=20
}
my $q =3D $dbh->prepare($qq);
$q->execute() or print STDERR "$0 $qq\n";
if($CONFIG{sqllimit} =3D=3D 0) {
my $tc=3D0;
while($tc < $FORM{lim}) {
my ($blah, $blah) =3D $q->fetchrow_array();
$tc++;
}
}
while(my ($blah, $blah) =3D $q->fetchrow_array()) {
wilbur::showentry($entID, $blah, $blah);
}
$q->finish();
$qq =3D "select count(entID) from entries where entUID=3D$uID";
$q =3D $dbh->prepare($qq);
$q->execute() or print STDERR "$0 $qq\n";
my ($ct) =3D $q->fetchrow_array();
$q->finish(); =20
if(($FORM{lim} - $PREF{pListNum}) >=3D 0 ) { #need prev=20
my $newlim =3D $FORM{lim} - $PREF{pListNum};
print "<< <a href=3D\"list.cgi?mode=3Dlist&lim=3D$newlim\">prev</a=
> ]";
}
my ($l, $lct) =3D (0, 1);=20
if($ct > $PREF{pListNum}) {
print "[";
do {
print "<a href=3D\"list.cgi?mode=3Dlist&lim=3D$l\"> $lct </a>";
$l +=3D $PREF{pListNum};
$lct++;
} while($l < $ct);
print "]\n";
}
if(($FORM{lim} + $PREF{pListNum}) < $ct) { # on last already
my $newlim =3D $FORM{lim} + $PREF{pListNum};
print "[ <a href=3D\"list.cgi?mode=3Dlist&lim=3D$newlim\">next</a> >&=
gt;\n";
}
This kind of code is extremely common in programs like this that may have=
a large number of items to display, and it is desireable to break them u=
p into "pages." Also, some have mentioned that a user might not want thi=
ngs broken up into pages. The preference to not have any limit is also t=
here in the above code.
a
Claudio Santana wrote:
>=20
> I think it would be better to slice this huge page in pages of n
> elements and then display just n elements and give to the user a next
> page link or button so we will just be selecting from the DB all the
> elements but the heavy operation that is generating the page will be
> done with a subset of all the elements. But in this case we should
> keep the state of the module, I mean the "next page" will mean
> different places every time we show it. So we could put that
> information in the "next page" link, we could include the query
> parameters and the next starting ID for the next page, and the same
> for "prev page" . Do I explain my self?
>=20
> Claudio Santana.
>=20
> --- Martin Lillepuu <ma...@li...> escribi=F3: > Thomas Sawyer
> wrote:
> >
> > > I have to get this working with this a large inventory. So I'm
> > looking
> > > at adding some selection criteria limitations to the ic.cgi
> > script. I'm
> > > thinking of adding limiting criteria where one has to select the
> > first
> > > and second letter of the search. (i.e. Aa, Ab, Ac...Zx, Zy, Zz)
> > How does
> > > this sound to you all? Any other ideas?
> >
> > maybe you should create a new parameter (eq. min_search_str_length)
> > in
> > configuration page, so people with small inventories (like me) can
> > set
> > it to 0 and in your case, it can be set to 2, 3 or whatever. then
> > add
> > code to ic.cgi that displays error message if search string is
> > shorter
> > than value specified in config. does this make any sense or am I
> > over-complicating things again? :)
> >
> > another idea to consider is grouping inventory items, so that you
> > first
> > select group and then only products belonging to specified group
> > are
> > displayed.
> >
> > idea #3 - limit displaying inventory items on one page (does
> > PostgreSQL
> > have equivalent to MySQL LIMIT?). Maybe implement this throughout
> > the
> > program + another option to config page?
> >
> > --
> > Martin Lillepuu | E-mail: ma...@li... | GSM: 051 56 450
> >
>=20
> _________________________________________________________
> Do You Yahoo!?
> Obtenga su direcci=F3n de correo-e gratis @yahoo.com
> en http://correo.espanol.yahoo.com
|